下载后如何安装go包?

Posted

技术标签:

【中文标题】下载后如何安装go包?【英文标题】:How to install go package after downloading? 【发布时间】:2019-09-28 19:43:30 【问题描述】:

我运行了这个:

cd $GOPATH && go get -u github.com/zricethezav/gitleaks

令人困惑的是,我现在有了这个:

$GOPATH/
     src/
       github.com/
         gitleaks/

但是没有bin/ 文件夹...我本来希望在这里看到 bin 文件夹:$GOPATH/bin

我做错了吗?如何安装软件包以显示二进制文件?我试着跑了:

go install github.com/zricethezav/gitleaks

但安装后我看不到bin/ 文件夹...

go env 的输出如下所示:

GOARCH="amd64"
GOBIN="/Users/alex/go/bin"
GOCACHE="/Users/alex/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/alex/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/st/159q4vsd64b69_x99dtzzt6m0000gn/T/go-build133179815=/tmp/go-build -gno-record-gcc-switches -fno-common"

【问题讨论】:

您设置了GOBIN 吗?您是否尝试使用-v-x 来查看输出是什么? github.com/gitleaks/ != github.com/zricethezav/gitleaks,所以我不知道你怎么去前者。 看起来你的 go install 包名有一个无关的前缀 src/。请记住,$GOPATH/src 是存储包源的目录。实际的包名是路径名中$GOPATH/src 的一部分。 是的,我刚刚发布了一个半答案,也许有帮助 【参考方案1】:

go get 之后,gitleaks 可执行文件应该在$GO_PATH\bin 目录中,而不是在$GO_PATH\src...\gitleaks 中。

看到这个:https://pocketgophers.com/go-install-vs-go-build/

【讨论】:

【参考方案2】:

我在 MacOS 上使用 brew install go 安装了 golang,这显然没有将主二进制文件放入 /usr/local/go,这就是我的 go get 命令失败的原因。

所以我没有使用 brew,而是通过以下方式安装:https://golang.org/doc/install?download=go1.12.5.darwin-amd64.pkg

使用 .pkg 文件安装后,/usr/local/go 中有文件,所以我的go get 命令起作用了。

我的猜测是 homebrew 将 go 二进制文件放在与 /usr/local/go 不同的位置,这有点麻烦,但我明白为什么。

【讨论】:

【参考方案3】:

如果 $GOPATH 不是 go 的根目录,我认为您必须手动创建 bin 文件夹。我已经手动创建了 $GOPATH/bin 文件夹并且它工作正常。

【讨论】:

GOPATH 永远不应该是 go 的根目录。如果是,则会产生错误。

以上是关于下载后如何安装go包?的主要内容,如果未能解决你的问题,请参考以下文章

phpstorm golang开发环境如何配置

使用gopm下载安装go语言包

如何为Linux安装Go语言

GO语言.树莓派.环境安装和测试

安装启动go语言开发环境,Windows

安装启动go语言开发环境,Windows