GOのパス設定がよくわからない
GOの勉強を始めようとしたが、つまづいたところがあったのでメモがてらに投稿。
問題:GOPATHやGOROOTとか何が何かわからない
$GOPATH
goのワークスペースのルートディレクトリ
GOPATHの中の構造は以下のようになっている
src/
: Go ソースコードの場所(例: .go、.c、.g、.s)。
pkg/
: コンパイルされたパッケージコードの場所(例: .a)。
bin/
: Go によってビルドされたコンパイル済み実行可能プログラムの場所。
$GOROOT
異なるGoバージョンを変更する必要がないなら気にしなくていい。
$PATH
インストールしたパッケージのコマンドなどが記述されたバイナリファイルが格納される場所です。コマンドなどはここから参照してくる。
結論
私はgoの開発をする際以下のようなディレクトリ構造で開発することにした。
(合っているかはわからないが…)
階層構造
home
├──そのほか
go ← ここがGOPATH
├── src
│ ├──goプロジェクト1
│ ├──goプロジェクト2
│ └──goプロジェクト3
├── pkg
└── bin
コマンドライン
export GOPATH=$HOME/go;
export PATH=$PATH:$GOPATH/bin;