できない.dev

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 が成功しても toolcommand not found になるのは、インストール先のディレクトリが PATH に入っていないためです。

go install はビルドしたバイナリを GOBIN(既定では $GOPATH/binGOPATH 未設定なら $HOME/go/bin)へ置きます。
まずその場所を確認します。

よくある原因

  1. bin が PATH に無い: $(go env GOPATH)/bin が PATH に含まれていない。
  2. GOBIN の変更: GOBIN を独自に設定したが、その場所を PATH に追加していない。
  3. GOPATH 未設定: 既定の $HOME/go/bin に置かれていることを見落としている。
  4. 再読み込み漏れ: 設定ファイルに追記したのにシェルへ反映していない。

解決策

1. インストール先を確認する

まず実際の置き場所を調べます。

go env GOPATH GOBIN

GOBIN が空なら $GOPATH/bin(多くは $HOME/go/bin)が置き場所です。

2. PATH に追加する

シェルの設定ファイルへ追記します。

echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc
source ~/.zshrc

3. GOBIN を使う場合

置き場所を固定したいときは GOBIN を設定し、その場所も PATH に通します。

go env -w GOBIN=$HOME/bin
export PATH=$PATH:$HOME/bin

設定後にシェルを開き直すと、go install したコマンドがどこからでも実行できます。

この記事は役立ちましたか?