Go のコマンドインストール先にパスを通す (GOBIN, GOPATH/bin)

go install コマンドで Go の実行可能コマンドをインストールすると、次のようなディレクトリにコマンドがインストールされます。

  1. GOBIN 環境変数が設定されていれば、$GOBIN が指すディレクトリ
  2. GOPATH 環境変数が設定されていれば、$GOPATH/bin が指すディレクトリ
  3. $HOME/go/bin ディレクトリ

これらのディレクトリに OS のパスを通しておくと、どのディレクトリからでもインストールしたコマンドを実行できるようになります。 Linux や macOS であれば、~/.zlogin~/.bash_profile で次のような感じで設定できます。 ここでは、GOBIN 環境変数を設定して、コマンドのインストール先を ~/bin に設定しています。

~/.zlogin
export GOBIN=~/bin
export PATH=$PATH:$GOBIN

でも、なんだかんだ言って次のような標準的な構成にしておくとトラブルが少なくてよい気がします。

~/.zlogin
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

Windows の場合は、コントロールパネルの「環境変数を編集」から次のような感じで設定します(%USERPROFILE% 以外の変数を参照すると、うまく展開できなくて問題が出たりするので注意)。

GOPATH → %USERPROFILE%\go
GOBIN  → %USERPROFILE%\go\bin
PATH   → %USERPROFILE%\go\bin (を PATH に追加)

上記のようにパスを通しておけば、go install でインストールしたコマンドを、どこからでも実行できるようになります。

$ go install github.com/maku77/go-hello@latest
$ go-hello
Hello, world!