蒹葭苍苍,白露为霜。
所谓伊人,在水一方。

Ngrok 1.0 编译问题解决方案

问题描述

在编译 ngrok 1.0 时,出现以下错误:

import "golang_org/x/net/http/httpguts": import path does not begin with hostname
package golang_org/x/net/http/httpguts: unrecognized import path "golang_org/x/net/http/httpguts"

原因是 Go 1.4.2 的依赖路径问题,建议升级到 Go 1.10 并重新编译。


解决方案

1. 卸载旧版 Go 1.4.2

sudo rm -rf /usr/local/go
sudo rm -rf /root/go

2. 安装 Go 1.10

# 下载 Go 1.10.8(Linux 64位)
wget https://dl.google.com/go/go1.10.8.linux-amd64.tar.gz

# 解压到 /usr/local
sudo tar -C /usr/local -xzf go1.10.8.linux-amd64.tar.gz

# 设置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
source ~/.bashrc

# 验证安装
go version
# 预期输出:go version go1.10.8 linux/amd64

3. 设置 ngrok 编译环境

# 创建必要的依赖目录
mkdir -p ~/go/src/golang.org/x
cd ~/go/src/golang.org/x

# 获取依赖库
git clone https://go.googlesource.com/net
git clone https://go.googlesource.com/sys
git clone https://go.googlesource.com/crypto

# 返回 ngrok 源码目录
cd /root/ngrok/ngrok

4. 重新编译 ngrok

# 清理旧编译文件
make clean

# 编译服务端(server)
GOOS=linux GOARCH=amd64 make release-server

# 如果需要客户端(client)
GOOS=linux GOARCH=amd64 make release-client

常见问题排查

1. 依赖获取不完整

go get -v -d ./...

2. Git SSL 证书问题

git config --global http.sslVerify false

3. GOPATH 设置问题

export GOPATH=/root/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

4. 权限问题

chown -R $USER:$USER /root/go

总结

升级到 Go 1.10 后,ngrok 1.0 的依赖路径问题应该可以解决。如果仍然报错,请检查:

  • GOPATH 是否正确设置
  • 是否已正确安装 golang.org/x/net 等依赖
  • 是否清理了旧的编译缓存 (make clean)

完成编译后,bin/ 目录下会生成 ngrokd(服务端)和 ngrok(客户端)。

赞(0) 打赏
未经允许不得转载:酷居科技 » Ngrok 1.0 编译问题解决方案

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

锦瑟无端五十弦,一弦一柱思华年

酷居科技联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册