GOROOTとは何か
GOROOTはGoをインストールした先のPATHのこと。
GOROOTはGoのインストール方法によって変わる
デフォルトのGOROOTは/usr/local/go
になっている。Goのインストール方法によってGOROOTのPATHが異なる。僕はgoenvを使ってGoをインストールしたので、次のようなPATHになっている。
$ echo $GOROOT
$HOME/.goenv/versions/1.13.14
GOROOT配下のディレクトリ
僕の環境のGOROOTは次のディレクトリ構成になっていた。
~/.goenv/versions/1.13.14
$ ls
AUTHORS LICENSE SECURITY.md bin lib robots.txt
CONTRIBUTING.md PATENTS VERSION doc misc src
CONTRIBUTORS README.md api favicon.ico pkg test
この中のbin/
にはgo、gofmtなどの実行バイナリが保存されている。
~/.goenv/versions/1.13.14/bin
$ ls
go gofmt
GOPATHとは何か
GOPATHは外部パッケージのリソースが配置されるPATHのこと。
GOPATHの指定
一般的には$HOME/go
にすることが多いようだ。僕の場合は次のように設定してあった。
$ echo $GOPATH
$HOME/go/1.13.14
GOPATHのディレクトリ構造
GOPATHを指定した後、go get
を叩くと次のようなディレクトリ構造になる。
~/go/1.13.14
$ ls
bin pkg src
bin
には、外部ソースのプラグインなどの実行ファイルが配置され、src
にはそのプラグインの実際のコードを配置される。pkg
はGo Modulesを使ってgo get
した場合にそのソースコードが配置される。