我要把所有的文件放到围棋的结构里去创建,而不是分散的。在更改GOPATH和GOROOT时,我注意到了~/..cache/go- build上的构建文件夹。
这个所以线一点帮助都没有,它所链接的文章也没有。它似乎并没有直接处理这个问题。我怎么才能改变呢?
编辑:问题不在于如何找到GOCACHE,我已经知道它可以被go env GOCACHE
查看,而是如何更改文件夹。
我尝试添加到~/ .bashrc:export GOCACHE=$HOME/path/to/folder
,现在当我使用go env GOCACHE
时,它指向新文件夹,但仍然试图将文件发送到~/.cache/go-build
。日志文件现在返回以下错误:
go: disabling cache (/home/<me>/.cache/go-build) due to initialization failure: mkdir /home/<me>/.cache/go-build: permission denied
发布于 2018-12-07 13:24:13
显示的错误
go: disabling cache (/home/<me>/.cache/go-build) due to initialization failure: mkdir /home/<me>/.cache/go-build: permission denied
这是因为目录/home/<me>/.cache/go-build
不存在,创建新目录的权限也不存在。这是不应该发生的,似乎在您的构建过程中的一些未知因素正在破坏GOCACHE设置。
你真的有一个叫<me>
的用户吗?这是非常不寻常的,也是不明智的,因为<>
是shell元字符
关于设置路径,请参见https://github.com/golang/go/blob/master/src/cmd/go/internal/cache/default.go和https://golang.org/pkg/os/#UserCacheDir
如果设置了GOCACHE变量,那么它将使用该变量。如果不使用os.UserCacheDir,它通常是$HOME/..cache,但可以被重写,请参阅文档
简单的答案是将GOCACHE变量设置为在您的围堵区域内。
只是为了澄清。Go编译器和工具在另一个环境中运行。
另一个环境的内部设置了变量,这些变量将授予
在Linux系统上,这个环境通常是bash。在用来设置GOPATH的bash shell中,经常使用命令"export =$ home / go“来将GOPATH设置为当前用户主目录中名为go的文件夹。若要设置GOCACHE,请在所使用的环境中设置变量,然后转到
发布于 2019-10-08 07:36:02
cd $HOME
sudo chown -R <yourname>.<yourname> .cache/go-build
对我来说很管用。
https://stackoverflow.com/questions/53669242
复制相似问题