我試圖在我的 .go 文件上運行 go install 但是,它似乎失敗了。它失敗是因為我的 GOBIN 環境變量沒有設置。但是,當我回應它時,我確實得到了它的設置,因為我的 .bashrc 和 .bash_profile 文件確保它已設置。但是,它沒有在 go env 中設置。出于某種原因,當實際設置時,go 無法識別其設置。但是,如果我在 shell 上手動設置為:me$ export GOBIN=$GOBIN現在 go env 決定識別它,即使我的 .bashrc 文件中有明確的行導出它并且我的 echo 確認了它的設置。有人知道為什么 go 的行為很奇怪嗎?我嘗試過的東西/參考我的操作系統mac osx 小牛。GO版- 我的 go 版本是 go 版本 go1.2 darwin/386。當我跑go version我得到:go version go1.2 darwin/386go env 識別的內容和環境變量跑步go env在我的終端中顯示:GOARCH="386"GOBIN=""GOCHAR="8"GOEXE=""GOHOSTARCH="386"GOHOSTOS="darwin"GOOS="darwin"GOPATH=""GORACE=""GOROOT="/usr/local/go"GOTOOLDIR="/usr/local/go/pkg/tool/darwin_386"TERM="dumb"CC="gcc"GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread -fno-common"CXX="g++"CGO_ENABLED="1"我的 .bashrc 和 .bash_profile 的樣子我在我的 .bash_profile 中采購我的 .bashrc 文件。即我的 .bash_profile 中的這段代碼:if [ -f ~/.bashrc ]; then source ~/.bashrc #executes for bash subshellsfi我也嘗試手動(手動我的意思是在 bash 上明確地作為人類輸入它)來源我的 .bash_profile (因為它無論如何都會運行我的 .bashrc 文件)并且 go env 仍然無法識別它。僅當我在 shell 中逐字輸入時me$ export GOBIN=$GOBINgo env 是否返回我想要的:GOARCH="386"GOBIN="/Users/brando90/go/bin"GOCHAR="8"GOEXE=""GOHOSTARCH="386"GOHOSTOS="darwin"GOOS="darwin"GOPATH=""GORACE=""GOROOT="/usr/local/go"GOTOOLDIR="/usr/local/go/pkg/tool/darwin_386"TERM="dumb"CC="gcc"GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread -fno-common"CXX="g++"CGO_ENABLED="1"
3 回答

慕容708150
TA貢獻1831條經驗 獲得超4個贊
在您的相關 shell 配置文件中試試這個:
export GOPATH=/path/to/your/go/workspace export PATH=$GOPATH/bin:$PATH
不要設置,GOBIN
因為它對 99% 的情況沒有用(即單用戶機器;請參閱 cmd 文檔)。確保unset GOBIN
在進行這些更改后。
Go 會知道在哪里安裝二進制文件,因為 Go 會GOPATH/{bin, pkg, src}
為您處理。另一方面,您的 shell 需要知道添加$GOPATH/bin
到您的路徑中,以便您可以直接運行 Go 二進制文件。

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
嘗試將export
行放在您的.bash_profile
而不是.bashrc
.
我讀過終端總是將 bash 作為登錄會話運行,因此將 source .bash_profile
,而不是.bashrc
.
- 3 回答
- 0 關注
- 304 瀏覽
添加回答
舉報
0/150
提交
取消