【问题标题】:golang offline install third party packagegolang离线安装第三方包
【发布时间】:2021-11-03 21:04:30
【问题描述】:

我正在尝试离线安装 golang 的第三方包。 我想做一些事情,比如在离线环境中进入在线环境。可以从github上获取第三方包的源码,放到离线环境下,但是在golang中不能作为包使用。

我该怎么办?

【问题讨论】:

标签: go package offline


【解决方案1】:

正如@emptyhua 评论的那样,这个链接对我有用:https://gist.github.com/gmolveau/f09c1038ca622620e54d0579ba06ea96#file-golang_offline-md

供参考:

  1. 在在线机器上确保 go.mod 和 go.sum 存在于当前目录中 创建一个 go 文件:

import (
    _ "github.com/gorilla/mux"
    _ "github.com/sirupsen/logrus"
)

func main() {}
  1. 运行:go mod vendor

  2. 将go.mod、go.sum和vendor目录复制到离线机器

  3. 运行: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

【讨论】:

    【解决方案2】:

    首先,您必须为工作目录设置GOPATH。 之后您可以使用以下离线包,只需为包的路径创建一个mod 文件。

    使用以下代码初始化 go mod 文件

    go mod init <Enter your GitHub profile link>

    例如:

    go mod init github.com/amshashankk

    在此之后,当您导入包时,它们将在代码的导入部分中编写如下

    github.com/amshashankk/package.

    【讨论】:

    • 你不需要设置 GOPATH 来处理模块,它不应该被设置到你的模块目录。
    • 当你在你的机器上下载 Go 时,GOPATH 已经设置好了。如果它显示路径错误,那么您必须为构建所有项目的工作目录配置 GOPATH。
    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2012-06-20
    相关资源
    最近更新 更多