はじめに
GoのREPLであるgore
をgo get
でインストールしようとしたところ、$GOPATH/bin
配下にバイナリファイルがインストールされず、困った。
結論
gore
のGitHubリポジトリのREADMEに書いてあるインストール方法で無事インストールできた。(2019.5.1時点)
go get -u github.com/motemen/gore/cmd/gore
事象
Goの学習のため、書籍「みんなのGo言語」を読み始めたところ、gore
をgo get
することになった。書籍に書いてある以下のコマンドを実行した。
go get github.com/motemen/gore
エラーなど発生することもなく、プロンプトが返ってきた。早速gore
を使ってみようとしてgore
コマンドを打つと、bashに「gore
なんてコマンドは知らない」と怒られた。
調査
以下調査順。
- 外部パッケージを
go get
するとダウンロードとインストールが実行され、$GOPATH/bin
にバイナリファイルができるはず。しかし$GOPATH/bin
を確認したところgore
のバイナリファイルはなかった。 -
$GOPATH/src
を確認すると、gore
および依存パッケージのソースコードは配置されていた。
$ tree -L 3 $GOPATH/src
$HOME/go/src
├── github.com
│ ├── motemen
│ │ ├── go-quickfix
│ │ └── gore
- 「go get バイナリファイル インストールできない」とかでググっていくつか記事を見たが、どの記事も
go get github.com/motemen/gore
でインストールできると書いてある。 - 試しに
go install
コマンドを試してみるが、やはりバイナリファイルはできず。 - 見ている書籍の発行は「2016年10月」なので、情報が古いという可能性は大いに考えられる。特にGoはまだ歴史が浅いので尚更。
- 最新情報を得るべく
gore
のリポジトリを見てみる。 - READMEにインストール方法が書いてあった。しかも書籍の情報と異なっている。
- READMEに書いてあるコマンドを実行すると無事バイナリファイルを
$GOPATH/bin
にインストールできた。 -
gore
のリポジトリを見ると、どうやら「2019年2月」にインストール方法が変わったらしい。比較的最近変更されたので、対応した記事を見つけられなかったのだろう。
教訓
- パッケージのインストール方法などはそのパッケージのリポジトリを確認しよう(READMEをちゃんと読もう)
- 書籍の情報はあくまで執筆時点の情報なので、そのままでうまくいくとは限らない