编译 Xray 遇到 gvisor 报错 通过 Github Codespaces 下载模块 修改编译环境 指定模块路径

之前自己手动编译Xray没遇到啥问题.

但今天重施故伎时发现报错.

看上去是没有成功下载 gvisor 模块


根据一些资料和telegram群友的指点, 设置了 GOPROXY

export GOPROXY=https://proxy.golang.org,direct

还是报一样的错.


在Google上猛地搜索一翻, 找到一篇文

https://medium.com/@carolegibbs007/我是如何解决xray编译-invalid-version-unknown-revision-1f7806d17489-错误的-51d5754bee6a

用他的思路解决了问题. 

记录一下详细操作, 如下.


打开 Xray 的 Github Repo 

https://github.com/XTLS/Xray-core

进入Github Codespaces

* 注意, 你需要登录 Github 账户才能用这个 Codespaces 功能.

执行编译命令, 一是检测能否编译成功, 二是在编译过程中下载了依赖的模块 (其中就包括了gvisor模块)

go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main


ls 检查一下是否编译成功


find 命令找一下 gvisor 模块的位置

 find / -name "*1f7806d17489*"

其中 1f7806d17489 是来自于目标模块的版本(tag)的一部分


得到 gvisor 模块的位置结果


进入 .zip 文件所在目录

cd /go/pkg/mod/cache/download/gvisor.dev/gvisor/@v/

开一个http服务

python3 -m http.server 8000

弹出的窗口中选择 "Open in Browser" 按钮


会打开一个新的tab页 (访问这个http服务)

点击 .zip 文件下载.


到此, 我们拿到了 gvisor.dev/gvisor/@v/v0.0.0-20231202080848-1f7806d17489.zip 的包


回到本来的编译 Xray 的环境, 上传刚拿到的 gvisor 模块的zip包, 并解压.

想放什么位置随便你, 我这里举例为下面的目录:

/home/ubuntu/gvisor.dev/gvisor@v0.0.0-20231202080848-1f7806d17489


修改编译环境 指定模块路径

go mod edit -replace 指定的模块=本地路径

go mod edit -replace gvisor.dev/gvisor@v0.0.0-20231202080848-1f7806d17489=/home/ubuntu/gvisor.dev/gvisor@v0.0.0-20231202080848-1f7806d17489

指定的模块就是之前报错的

然后再编译, 就成功了.



========

评论

The Hot3 in Last 30 Days