2013-07-16 13 views
5

go installコマンドで迷惑な問題があります。go installはGOPATHの代わりにGOROOT/binを常に使用します

私は私のGOPATHたファイルのsrcディレクトリ内にそれを実行しようとするたびに、何らかの理由でGOROOT/binにディレクトリに作成なっています。

私は.bashrcの中に私の環境変数を検証し、また、(下記参照) 'ENVを行く' を実行し、すべての問題を見つけることができませんでした:.bashrcの

export GOBIN=$HOME/dev/src/go/bin 
export GOPATH=$HOME/dev/go-dev 
export PATH=$PATH:$GOBIN:$GOPATH/bin 

をENV行きます

GOARCH="amd64" 
GOBIN="/home/user/dev/src/go/bin" 
GOCHAR="6" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="linux" 
GOOS="linux" 
GOPATH="/home/user/dev/go-dev" 
GORACE="" 
GOROOT="/home/user/dev/src/go" 
GOTOOLDIR="/home/user/dev/src/go/pkg/tool/linux_amd64" 
CC="gcc" 
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread" 
CGO_ENABLED="1" 

This post私はGOPATHを持っている以外は同様の問題があります。 env(私は解決策を試しましたが、それは役に立たなかった)。私はテストライブラリusing official GoLang siteを作成し、を実行しようとした

は、私は$ GOPATH/PGK/linux_amd64ではなく、binディレクトリに作成された適切なファイルを持っているをインストールして行きます。

設定に何か不足していますか? goツールについて

答えて

10

Official documentation

DIRはGOPATHに記載されているディレクトリである場合は...

GOBIN環境変数が設定されている場合、コマンドは、ディレクトリそれ名にインストールされている代わりに、 DIR/binに

これをさらに説明するmailing list上でこのトピックについての議論がありました:

(a)はあなたがあなたのバイナリがGOPATH/binに行っているのに対し、GOROOT/binに に行くのGoコンパイラのバイナリを取得 、あなたのGOBINのENV変数を設定しない場合。 (私は個人的にバイナリの分離が好きです。)

(b)GOBINを何かに設定すると、 Goバイナリとバイナリの両方がGOBINになります。

解決策は、あなたのGOBINを設定しないことです。

+0

ありがとうございました!最後の2時間、これと「戦って」いた... – Timka

+0

うれしい私は助けることができました。 – tjameson

+0

私の場合はGOBINが$ HOME/go/binになっていても '許可が拒否されました'のために動作しませんでした –

関連する問題