アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

homebrew を使って gomod 経由で Go のバイナリをインストールする

Go 1.14 では modules がついに production ready な状態になった。

これまで ghq といったツールを使い、GOPATH 直下に自分のワークスペースを作って開発するといった手法とはお別れになるだろう。開発に関してはとても便利になったが、これまで go getgo install で Go のバイナリをリモートからインストールしていたが、 modules を使っているワークスペース上で行うと、プロジェクトに使われる module としてインストールされてしまうため、良い方法はまだ存在しない。

しかし、global install ができるようしたい!といった issue は既に存在するため将来的には可能になるかもしれない。

そんな中、Go Hacker の一人である @FiloSottile 氏が homebrew と gomod を組み合わせて、上記で記述したやりたいことが実現できるツールを開発していた。

彼のツイートで使い方が紹介されている。

とてもシンプルに利用可能である。例として https://github.com/Code-Hex/Neo-cowsay の cowsay コマンドをインストールしたいのであれば次を実行すれば良い。

$ brew gomod github.com/Code-Hex/Neo-cowsay/cmd/cowsay

しかも指定した versions, commits, branches 毎にバイナリも取得できるようになっている。

$ brew gomod filippo.io/mkcert@master
$ brew gomod filippo.io/mkcert@v1.4.1

インストールしたバイナリは brew list | grep gomod で確認することが可能で、uninstall したい場合は

$ brew uninstall gomod-cowsay
Uninstalling /usr/local/Cellar/gomod-cowsay/2020-03-22... (3 files, 3.7MB)

といった感じで簡単に行うことができる。とても便利!

参考

blog.filippo.io