【问题标题】:Installing gopkg.in/yaml.v2 from local file (Go)从本地文件安装 gopkg.in/yaml.v2 (Go)
【发布时间】:2024-01-17 13:28:01
【问题描述】:

我正在尝试为要安装的工具构建 Go 文件,但出现以下错误:

pgwatch2.go:26:2: cannot find package "gopkg.in/yaml.v2" in any of:
    /usr/local/go/src/gopkg.in/yaml.v2 (from $GOROOT)
    /home/postgres/go/src/gopkg.in/yaml.v2 (from $GOPATH)"gopkg.in/yaml.v2" in any of:

我意识到我需要获取 Go 模块 gopkg.in/yaml.v2 但我的服务器无法访问互联网。因此,我尝试了 2 个对我没有帮助的解决方案:

1) 百胜安装 golang-gopkg-yaml-devel-v2.noarch

2)我下载了源文件(yaml-2.2.1.zip)并将它们放在服务器中,但我不知道如何从这里继续。我如何安装yaml?我尝试解压缩并使用 go install 进入我想要的目录。 这是我收到的错误。

go install: no install location for directory /PostgreSQL/pgwatch2/pgwatch2-master/pgwatch2/yaml-2.2.1 outside GOPATH
    For more details see: 'go help gopath'

谁能给我一些建议?

【问题讨论】:

    标签: go yaml


    【解决方案1】:

    如果您不希望从 Internet 访问您的服务器,那么您可以添加一个位于公共子网上的新实例,然后在该实例中创建一个 nat 服务器并将您的服务器连接到该 nat 实例,以便服务器可以从互联网下载,但无法通过公共 ip 从互联网访问。

    通过 go get 安装

    go get gopkg.in/yaml.v2
    

    并确保你设置了 GOPATH,如果没有

    在 .bashrc(linux) 中进行修改以添加以下行。

    export GOPATH=<path>
    

    更新

    如果你不想尝试上面的方法,你可以试试这个。

    yaml-2.2.1.zip的内容解压到GOPATH/src/gopkg.in/yaml.v2
    这应该可以,但是如果您有很多包,这可能会很累。

    【讨论】:

    • 去尝试访问互联网。我无法从服务器访问互联网..
    • 首先确保您设置了GOPATH。你可以通过echo $GOPATH查看。然后将yaml-2.2.1.zip的内容解压到GOPATH/src/gopkg.in/yaml.v2