はじめに
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をちゃんと読もう)
- 書籍の情報はあくまで執筆時点の情報なので、そのままでうまくいくとは限らない