3 回答
TA贡献1900条经验 获得超5个赞
godoc
似乎是一般go get
做法的一个例外,因为它安装到 go 安装 ( $GOROOT/bin
) 而不是$GOPATH
. 所以,如果你真的需要更新godoc
(为什么?),你需要做的是:
以 root 身份登录(或
su
、 或sudo su
、 或 ...)设置
$GOPATH
为您的普通用户$GOPATH
("/home/utkbansal/go"
)更新
godoc
、使用go get -u golang.org/x/tools/cmd/godoc
或所有工具为您的
$GOPATH
IE设置适当的权限chown -R utkbansal:utkbansal $GOPATH
(仍为 root)
我猜应该可以。但是:你为什么要更新godoc
?如果您只想要一个未预装的特定工具,您应该可以在go get
没有 root 权限的情况下使用它。
TA贡献1858条经验 获得超8个赞
mrd0ll4r 对这个问题有很好的解释,但我想分享一种更简单的安装godoc
. 假设你$GOPATH
在你的.bashrc
(或类似的)尝试中设置:
sudo -E go get golang.org/x/tools/cmd/godoc
使用该-E
标志,您可以保留当前的环境变量(包括$GOPATH
)。
TA贡献1812条经验 获得超5个赞
因为你使用了 -u 标志,它首先尝试更新已经安装的包,并且在 /usr/lib/go/bin/godoc 有一个二进制文件
当你用 sudo 运行它时,它没有你的环境变量,所以它不再有 GOPATH 变量
你可以进入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 关注
- 196 浏览
添加回答
举报