2017-01-10 62 views
0

我试图安装一个go项目(the keybase client, in particular),但我想为我的系统上的所有用户全局安装它。安装去程序包到系统路径的正确方法是什么?

我搜索了一圈,发现有几个人谁不小心给/usr/local/go/bin或东西安装的东西到效果,但对如何我其实应该要安装的东西这样的位置没有说明。

但这就是我想要做的 - 全局安装应用程序。我应该怎么做呢?

,因为没有存在Raspbian杰西我不使用任何预编译包。

+0

你可以像安装系统一样安装它,它没有什么特别之处。该页面为Mac和Linux提供了预编译包。 – JimB

+0

amd32和64 linux,而不是ARM –

+1

啊,没有看到关于Raspbian的小字体。只需将二进制文件复制到系统PATH即可。 – JimB

回答

0

你有没有尝试设置$ GOBIN这样的:在PATH

GOBIN =在/ usr/local/bin目录/或GOBIN =的/ usr/bin中/或任何目录?

然后:

出口GOBIN

,然后再安装应用程序?

根据手册默认$ GOBIN是$ GOROOT/bin中,所以我想这些用户设置GOROOT到/ usr /本地/去

+0

如果您将GOBIN设置为您没有写权限的目录,那么在使用'sudo'构建和安装后,您将在GOPATH中的根拥有文件出现问题。 – JimB

+0

也许我误解了这个问题。我尝试了一个虚拟机,并在我的$ GOBIN中获得了一个可以作为任何用户运行的keybase可执行文件。 – Roeften

+0

默认系统bin目录只能由root用户写入。如果你运行'sudo go install',你现在在你的GOAPTH中拥有root拥有的文件。您不应该以root身份构建软件。 – JimB

0

,我已经采取的做法是这样的:

PATH="$PATH:/usr/local/go/bin" GOPATH=/usr/local/go/ go get github.com/keybase/client/go/keybase 
PATH="$PATH:/usr/local/go/bin" GOPATH=/usr/local/go/ go install -tags production github.com/keybase/client/go/keybase 

哪个结束安装keybase/usr/local/go/bin/keybase。有可能有更好的办法,但到目前为止我还没有看到。

+1

我建议不要设置'GOPATH =/usr/local/go',因为这是默认的GOROOT,并且你永远不想意外地打破某些东西GOROOT。 (您确实要求“正确”的方式,并且这仍然是将生成的二进制文件安装到系统路径之后,就像其他任何二进制文件一样。) – JimB

相关问题