在我的系统中,GOBIN变量未设置(空值)。现在,与其他GO env变量不同,即使在go env命令的输出中,这似乎也是未设置的。(我是用户ubuntu,所以~是/home/ubuntu/)
echo $GOBIN
//empty
echo $GOPATH
//empty
echo $GOROOT
//empty
go env GOBIN
//empty
go env GOPATH
/home/ubuntu/go
go env GOROOT
/usr/local/go
which go
/usr/local/go/bin/gogo env给出的值与系统环境变量不同?我找不到这方面的任何文档,但我的假设是,如果env变量没有在系统级别上设置,Golang将设置默认值--这些值由go env显示。这个假设正确吗?GOBIN未设置?我尝试显式地设置system变量,但是它没有在go env中得到反映,尽管system变量似乎被修改了。为什么?echo $GOBIN
//empty
go env GOBIN
//empty
go env GOPATH
/home/ubuntu/go
GOBIN=‘/home/ubuntu/go/bin’
echo $GOBIN
/home/ubuntu/go/bin
go env GOBIN
//empty官方文件(https://pkg.go.dev/cmd/go)说:
环境打印Go环境信息
但是它没有提到这些变量是从哪里来的。
问题X (https://xyproblem.info/)
我正在尝试安装Delve (https://github.com/go-delve/delve),我的系统有两个go版本(go1.10.1和go1.17.8),我计划使用后者(遗憾的是无法删除前者)
go1.17.8 go install github.com/go-delve/delve/cmd/dlv@latest在/home/ubuntu => go上创建了一个新目录,并在这里添加了Delve。但是dlv version是不被认可的。在go help env中,GOBIN是go install应该安装二进制文件的地方--在我的例子中,它是未设置的,所以我猜Golang会在GOPATH上安装它。但即使如此,我也希望这个二进制能被识别。我还尝试将这个位置添加到我的PATH中,但这也不起作用。
在通过go1.17.8
which go指向go1.10.1版本),导致了这一点?(1.10.1没有模块支持,但我是通过go.17.8尝试安装的,因此我认为这不是问题)发布于 2022-10-14 05:11:26
这些go env变量是在安装二进制文件时设置的变量。
请参阅https://github.com/golang代码
根据
。
这些默认值按照运行时https://github.com/golang/go/blob/master/src/cmd/dist/buildruntime.go#L48生成
因此,这些变量不显示为操作系统环境变量的一部分。
这些变量可以由os.UserConfigDir的配置文件或命令go env NAME=VALUE覆盖。
发布于 2022-10-14 03:02:35
Linux将存储该文件的持久设置:
$HOME/.config/go/env通过go env -w命令。由于go工具从加载设置,所以 this config 和 ENV VARS -这解释了为什么您可能会看到不同的值。go工具将两者结合在一起。
https://stackoverflow.com/questions/74063696
复制相似问题