这有点是我上一个问题的后续问题:golang:在本地目录中安装软件包
我已GOPATH设置$HOME/prog/go/gopath为此路径存在三个目录:
~/prog/go/gopath$ ls
bin pkg src
Run Code Online (Sandbox Code Playgroud)
现在我尝试安装一个模块来访问redis数据库,要求我运行
go install
Run Code Online (Sandbox Code Playgroud)
在源目录中.但命令go install给了我
~/prog/go/gopath/src/redis (go1)$ go install
go install flag: open /usr/local/go/pkg/darwin_amd64/flag.a: permission denied
~/prog/go/gopath/src/redis (go1)$ echo $GOPATH
<myhomedir>/prog/go/gopath
Run Code Online (Sandbox Code Playgroud)
(哪里<myhomedir>是有效路径)
问题1:为什么go install不采取$GOPATH考虑?问题2:如何说服go install使用$GOPATH?
不知道你如何设置go但它可能需要从std库构建包但由于权限不能.你可以试试
cd /usr/local/go/src
sudo ./all.bash
Run Code Online (Sandbox Code Playgroud)
这应该构建std库并运行测试以确保一切正常.
确保您具有适当的权限,以便在必要时从$ GOROOT读取和执行.我个人只是从golang.org下载档案并将其保存在〜/ local/go下并适当地设置GOROOT.
类似的问题在这里 当我检查我的$ GOROOT时,我发现所有的库都已经在那里构建了.但由于某些原因,它试图重建所有库.所以我只是做一个小技巧:
find /usr/lib/go/pkg/ -name "*.*" | sudo xargs touch
Run Code Online (Sandbox Code Playgroud)
一切都很好.
| 归档时间: |
|
| 查看次数: |
10298 次 |
| 最近记录: |