2017-01-10 119 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

相關問題