登录
首页 >  Golang >  Go问答

修改 Ubuntu Linux 中 GOCACHE 默认目录

来源:stackoverflow

时间:2024-03-13 09:54:27 184浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《修改 Ubuntu Linux 中 GOCACHE 默认目录》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我必须把GO创建的所有文件都放在GO的结构中,而不是分散的。在更改 GOPATH 和 GOROOT 时,我注意到 ~/.cache/go-build 上的构建文件夹。

这个线程根本没有帮助,它链接的文章也没有帮助。它似乎并没有直接处理这个问题。我该如何更改它?

编辑:问题不在于如何找到 GOCACHE,我已经知道可以通过 go env GOCACHE 查看它,而是如何更改该文件夹 .

我尝试添加到 ~/.bashrc: export GOCACHE=$HOME/path/to/folder,现​​在当我使用 go env GOCACHE 时,它指向新文件夹,但仍尝试将文件发送到 ~/.cache/go-build。日志文件现在返回以下错误:

go:由于初始化失败而禁用缓存(/home//.cache/go-build):mkdir /home//.cache/go-build:权限被拒绝


解决方案


显示错误

go: disabling cache (/home//.cache/go-build) due to initialization failure: mkdir /home//.cache/go-build: permission denied

是因为目录 /home//.cache/go-build 不存在,并且没有创建新目录的权限。这种情况不应该发生,似乎构建过程中的某些未知因素正在破坏 gocache 设置

您确实有一个名为 的用户吗?这是非常不寻常且不明智的,因为 <> 是 shell 元字符

关于设置路径,参见https://github.com/golang/go/blob/master/src/cmd/go/internal/cache/default.gohttps://golang.org/pkg/os/#UserCacheDir

如果设置了 gocache 环境变量,那么它就会使用它。如果不是,它使用 os.usercachedir 通常是 $home/.cache 但可以被覆盖,请参阅文档

简单的答案是将 gocache 环境变量设置在 go 包含区域内

只是为了澄清。 go 编译器和工具在另一个环境中运行。

这个其他环境内部设置了变量,go 将遵循这些变量

在 linux 系统上,此环境通常是 bash shell。在 bash shell 中设置 gopath 时,经常使用命令“export gopath=$home/go”,将 gopath 设置为当前用户主目录中名为 go 的文件夹。要设置 gocache,请在您正在使用的环境中设置变量,go 将选择它

cd $HOME    
sudo chown -R . .cache/go-build

这对我有用。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>