3 回答

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊
godoc
似乎是一般go get
做法的一個例外,因為它安裝到 go 安裝 ( $GOROOT/bin
) 而不是$GOPATH
. 所以,如果你真的需要更新godoc
(為什么?),你需要做的是:
以 root 身份登錄(或
su
、 或sudo su
、 或 ...)設(shè)置
$GOPATH
為您的普通用戶$GOPATH
("/home/utkbansal/go"
)更新
godoc
、使用go get -u golang.org/x/tools/cmd/godoc
或所有工具為您的
$GOPATH
IE設(shè)置適當(dāng)?shù)臋?quán)限chown -R utkbansal:utkbansal $GOPATH
(仍為 root)
我猜應(yīng)該可以。但是:你為什么要更新godoc
?如果您只想要一個未預(yù)裝的特定工具,您應(yīng)該可以在go get
沒有 root 權(quán)限的情況下使用它。

TA貢獻(xiàn)1858條經(jīng)驗 獲得超8個贊
mrd0ll4r 對這個問題有很好的解釋,但我想分享一種更簡單的安裝godoc
. 假設(shè)你$GOPATH
在你的.bashrc
(或類似的)嘗試中設(shè)置:
sudo -E go get golang.org/x/tools/cmd/godoc
使用該-E
標(biāo)志,您可以保留當(dāng)前的環(huán)境變量(包括$GOPATH
)。

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
因為你使用了 -u 標(biāo)志,它首先嘗試更新已經(jīng)安裝的包,并且在 /usr/lib/go/bin/godoc 有一個二進(jìn)制文件
當(dāng)你用 sudo 運行它時,它沒有你的環(huán)境變量,所以它不再有 GOPATH 變量
你可以進(jìn)入root模式并從那里運行它
sudo su
export GOROOT="/usr/lib/go"
export GOPATH="/home/utkbansal/go"
go get -u golang.org/x/tools/cmd/...
# other commands
exit
- 3 回答
- 0 關(guān)注
- 236 瀏覽
添加回答
舉報