3 回答

TA貢獻1829條經(jīng)驗 獲得超7個贊
這里發(fā)生了很多事情。
您混淆的第一點是既不下載“src”也不go get
下載“bin”:Go 包總是只包含源代碼,并且它們通常在文件和目錄層次結(jié)構(gòu)中不包含“src”目錄。
相反,這些目錄是 Go 工具鏈的產(chǎn)物。
混淆的第二點是,從 Go 1.8 開始,Go 工具鏈使用環(huán)境變量的回退值(GOPATH
如果未設(shè)置),并且在類 Unix 系統(tǒng)上,它默認為“home”目錄下名為“go”的目錄執(zhí)行go
命令的用戶。
如果此目錄丟失,工具鏈將創(chuàng)建它。
因此,我對您的問題的抨擊是您有某種權(quán)限問題:當GOPATH
未設(shè)置時,使用“$HOME/go” -$HOME
對于當前用戶擴展為任何值;當您手動設(shè)置時GOPATH
,某些東西會阻止在$GOPATH
.
還有另一種可能性:您還設(shè)置了GOBIN
環(huán)境變量,該變量在設(shè)置時會覆蓋用于安裝由go install
(and go get
) 構(gòu)建的二進制文件的常用位置。
您可以研究 的輸出go help environment
以閱讀有關(guān)該主題的更多信息。
在任何一種情況下,最明智的前進路徑是go install
使用-x
命令行選項運行并查看命令嘗試將生成的可執(zhí)行映像放在哪里,以及失敗的原因(如果有的話)。您可以研究該主題的輸出go help install
并go help build
閱讀更多內(nèi)容。
您也可以考慮針對您的特定情況強制使用 Go 模塊:GO111MODULES=on go get github.com/linkedin/Burrow
對于您的用例,運行速度會快五倍。
一定要先研究go help modules
and的輸出go help mod-get
。

TA貢獻1799條經(jīng)驗 獲得超6個贊
bin
該命令src
不會自動為您創(chuàng)建一個或多個文件夾。go get
以下是在 go 中創(chuàng)建新項目的標準步驟,假設(shè)這是您第一次在 go 中創(chuàng)建項目:
在您的工作區(qū)目錄下,創(chuàng)建一個項目目錄,例如“project1”bin、src 目錄。
設(shè)置 GOPATH,GOBIN:
export GOPATH=~/workspace/project1/
export GOBIN=~/workspace/project1/bin
現(xiàn)在,如果您只需要源代碼,請執(zhí)行
go get github.com/linkedin/Burrow
或如果您需要二進制文件,請執(zhí)行go install github.com/linkedin/Burrow
二進制文件將存儲在 ~/workspace/project1/bin 下,源代碼存儲在 ~/workspace/project1/ 下
如果您通過 make 文件或終端創(chuàng)建項目,則相同的步驟將適用
- 3 回答
- 0 關(guān)注
- 436 瀏覽
添加回答
舉報