3 回答
TA贡献1829条经验 获得超7个赞
这里发生了很多事情。
您混淆的第一点是既不下载“src”也不go get
下载“bin”:Go 包总是只包含源代码,并且它们通常在文件和目录层次结构中不包含“src”目录。
相反,这些目录是 Go 工具链的产物。
混淆的第二点是,从 Go 1.8 开始,Go 工具链使用环境变量的回退值(GOPATH
如果未设置),并且在类 Unix 系统上,它默认为“home”目录下名为“go”的目录执行go
命令的用户。
如果此目录丢失,工具链将创建它。
因此,我对您的问题的抨击是您有某种权限问题:当GOPATH
未设置时,使用“$HOME/go” -$HOME
对于当前用户扩展为任何值;当您手动设置时GOPATH
,某些东西会阻止在$GOPATH
.
还有另一种可能性:您还设置了GOBIN
环境变量,该变量在设置时会覆盖用于安装由go install
(and go get
) 构建的二进制文件的常用位置。
您可以研究 的输出go help environment
以阅读有关该主题的更多信息。
在任何一种情况下,最明智的前进路径是go install
使用-x
命令行选项运行并查看命令尝试将生成的可执行映像放在哪里,以及失败的原因(如果有的话)。您可以研究该主题的输出go help install
并go help build
阅读更多内容。
您也可以考虑针对您的特定情况强制使用 Go 模块:GO111MODULES=on go get github.com/linkedin/Burrow
对于您的用例,运行速度会快五倍。
一定要先研究go help modules
and的输出go help mod-get
。
TA贡献1799条经验 获得超6个赞
bin
该命令src
不会自动为您创建一个或多个文件夹。go get
以下是在 go 中创建新项目的标准步骤,假设这是您第一次在 go 中创建项目:
在您的工作区目录下,创建一个项目目录,例如“project1”bin、src 目录。
设置 GOPATH,GOBIN:
export GOPATH=~/workspace/project1/
export GOBIN=~/workspace/project1/bin
现在,如果您只需要源代码,请执行
go get github.com/linkedin/Burrow
或如果您需要二进制文件,请执行go install github.com/linkedin/Burrow
二进制文件将存储在 ~/workspace/project1/bin 下,源代码存储在 ~/workspace/project1/ 下
如果您通过 make 文件或终端创建项目,则相同的步骤将适用
- 3 回答
- 0 关注
- 391 浏览
添加回答
举报