【问题标题】:How to install go package after downloading?下载后如何安装go包?
【发布时间】: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 的一部分。
  • 是的,我刚刚发布了一个半答案,也许有帮助

标签: go go-get gitleaks


【解决方案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 的根目录。如果是,则会产生错误。
      猜你喜欢
      • 2021-07-01
      • 2021-09-01
      • 1970-01-01
      • 2021-09-14
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2013-03-25
      相关资源
      最近更新 更多