2013-06-04 7 views
5

私は、pkg、およびsrcのフォルダを私のGOPATHとするフォルダ($ HOME/develop/gocode)を持っていて、適切に設定されたGOPATHを持っていますそこ。私はgo gethttps://github.com/jbarham/primegen.go)を使って特定のgithubリポジトリをインストールしようとしましたが、Goは私にエラーを返しました:stat github.com/jbarham/primegen.go: no such file or directory(リポジトリは.goで終わっていると思います)そのリポジトリ内の実行可能ファイルは、(どちらもが動作しますが、私は最初primespeedインストールしてみました)私は次のエラーを取得する:私のGOPATHの代わりに/ usr/lib/goにインストールしようとすると「go install」します。許可が拒否されました

$ cd $GOPATH/src/github.com/jbarham/primegen.go/primespeed 
$ go install 
go install github.com/jbarham/primegen.go: mkdir /usr/lib/go/pkg/linux_amd64/github.com: permission denied 

そこにパッケージをインストールしようとして行くのはなぜ?明示的に私のGOPATH変数を設定しましたが、代わりに/ usr/localにパッケージをインストールしようとしています。

私はそれが役立つかどうかわからないんだけど、ここでは、バージョンと環境に関するいくつかの他の出力です:

$ go env 
GOROOT="/usr/lib/go" 
GOBIN="" 
GOARCH="amd64" 
GOCHAR="6" 
GOOS="linux" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="linux" 
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64" 
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread" 
CGO_ENABLED="1" 
$ go version 
go version go1.0.2 
+0

何かが怪しいです - あなたの 'go env'出力に' GOPATH'が表示されないのはなぜですか? –

+0

「GOPATHをエクスポートしましたか? – alex

答えて

5
  1. あなたGOPATHはおそらくエクスポートされません。
  2. はい、拡張子が.goのリポジトリは「go getable」ではありません。

広告1.(より良いの.bashrcまたは同等に入れ):

$ export GOPATH=$HOME # just an example 

広告2.(より良い無意味なリポジトリ名についてissueを上げる):

$ mkdir -p $GOPATH/src/github.com/jbarham 
$ cd $GOPATH/src/github.com/jbarham 
$ git clone https://github.com/jbarham/primegen.go.git 
$ cd primegen.go 
$ go install 
+1

残念ながら、それはそうではないようです。私は間違いなくGOPATHをエクスポートして、他のパッケージをうまくインストールすることができます。私は、パッケージの最後にある '.go'がエラーを引き起こしていると仮定しています。先日、私は舞台裏で何が起こっているのかを学び、犯人を見つけてパッチを提出するかもしれません。今のところ、私はGoの好奇心を満たすために他のプロジェクトに移りました。ご協力いただきありがとうございます。 – Drewmate

+0

それは変です、私が 'go env'を実行すると、' GOPATH'がリストされます。私は上記のあなたの出力でそれを見ることはできません。 – Intermernet

6
export GOPATH=$HOME/go 

export GOBIN=$HOME/go/bin 

それを試してください。

0

私は同じ問題を抱えていましたが、いくつかのリポジトリでは、具体的にエクスポートを追加する必要があることがわかりましたGOPATH。私GOPATH

cd $GOPATH 
export GOPATH=$PWD && go get -d github.com/nsf/gocode 

から例えばあなたそれエイリアス場合は、私が推測するすべて一緒にそれを避けることができます:

alias goget='cd $GOPATH; export GOPATH=$PWD && go get' 

これは完璧とexport GOPATH=$GOPATHが動作しない奇妙なことではありません。 何らかの理由で一部のリポジトリがGOPATH$HOMEにリセットし、別のユーザーとして実行しようとしています。 私は、go getメソッドのどこかで、いくつかの開発コードを呼び出していると推測しています。 [ちょっと冗談、私を引用しない]