[英]Installing packages in a local directory
在本地目錄中安裝軟件包( go get...
的最佳實踐)是什么?
示例:我想嘗試使用Revel Web框架,但我不想在/usr/local/go
混淆我的go安裝。
通常我會說sudo go get github.com/robfig/revel
上寫的sudo go get github.com/robfig/revel
,但是它會安裝在/usr/local/go/src/pkg/...
。
是否有一種簡單的方法可以說(例如) go get --local ...
並將包放在當前(子)目錄中?
要擴展keks答案,您可以將.bashrc更新為這樣
export GOROOT=/usr/local/go
export GOPATH=~/workspace/me/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
現在,使用go get
安裝的所有軟件包都與go分發版本分開。
您可以導出env變量GOPATH
。 對我來說是~/local/lib/go
。 這個文件夾有子文件夾bin
, pkg
和src
,所以就像/usr/local/go
。 然后, go
-tool將自動下載,構建和安裝包到此目錄中。
您可能需要考慮使用Go Version Manager(gvm) 。
除了輕松切換Go版本之外,它還允許您在pkgsets (“工作區”)之間切換。
首先,您創建一個集合
gvm pkgset create myproject
然后你用它
gvm pkgset use myproject
奇跡般有效。
在現代模塊啟用go(在1.11中介紹)中,您可以使用gobin程序和GOBIN env var指定二進制文件的目標:
GOBIN=./local gobin github.com/robfig/revel
gobin的安裝如下:
GO111MODULE=off go get -u github.com/myitcv/gobin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.