【发布时间】:2021-11-03 21:04:30
【问题描述】:
我正在尝试离线安装 golang 的第三方包。 我想做一些事情,比如在离线环境中进入在线环境。可以从github上获取第三方包的源码,放到离线环境下,但是在golang中不能作为包使用。
我该怎么办?
【问题讨论】:
我正在尝试离线安装 golang 的第三方包。 我想做一些事情,比如在离线环境中进入在线环境。可以从github上获取第三方包的源码,放到离线环境下,但是在golang中不能作为包使用。
我该怎么办?
【问题讨论】:
正如@emptyhua 评论的那样,这个链接对我有用:https://gist.github.com/gmolveau/f09c1038ca622620e54d0579ba06ea96#file-golang_offline-md
供参考:
import (
_ "github.com/gorilla/mux"
_ "github.com/sirupsen/logrus"
)
func main() {}
运行:go mod vendor
将go.mod、go.sum和vendor目录复制到离线机器
运行:go run -mod=vendor main.go
为了离线测试,我使用了一个没有网络的容器:
podman run --rm -it --net none -v $(pwd):/go/src:z golang
cd src
go run -mod=vendor main.go
希望对您有所帮助!谢谢@gmolveau - offline go mods
【讨论】:
首先,您必须为工作目录设置GOPATH。
之后您可以使用以下离线包,只需为包的路径创建一个mod 文件。
使用以下代码初始化 go mod 文件
go mod init <Enter your GitHub profile link>
例如:
go mod init github.com/amshashankk
在此之后,当您导入包时,它们将在代码的导入部分中编写如下
github.com/amshashankk/package.
【讨论】: