go install したコマンドが「command not found」で実行できない
go install はバイナリを GOBIN(既定は $GOPATH/bin か $HOME/go/bin)に置く。
その場所が PATH に無いと実行できないため、インストール先を確認して PATH に追加すれば解決する。
#go#go-install#path#gobin#gopath
公開:
要約
go install example.com/cmd/tool@latest が成功しても tool が command not found になるのは、インストール先のディレクトリが PATH に入っていないためです。
go install はビルドしたバイナリを GOBIN(既定では $GOPATH/bin、GOPATH 未設定なら $HOME/go/bin)へ置きます。
まずその場所を確認します。
よくある原因
- bin が PATH に無い:
$(go env GOPATH)/binが PATH に含まれていない。 - GOBIN の変更:
GOBINを独自に設定したが、その場所を PATH に追加していない。 - GOPATH 未設定: 既定の
$HOME/go/binに置かれていることを見落としている。 - 再読み込み漏れ: 設定ファイルに追記したのにシェルへ反映していない。
解決策
1. インストール先を確認する
まず実際の置き場所を調べます。
go env GOPATH GOBINGOBIN が空なら $GOPATH/bin(多くは $HOME/go/bin)が置き場所です。
2. PATH に追加する
シェルの設定ファイルへ追記します。
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc
source ~/.zshrc3. GOBIN を使う場合
置き場所を固定したいときは GOBIN を設定し、その場所も PATH に通します。
go env -w GOBIN=$HOME/bin
export PATH=$PATH:$HOME/bin設定後にシェルを開き直すと、go install したコマンドがどこからでも実行できます。