homebrew を使って gomod 経由で Go のバイナリをインストールする
Go 1.14 では modules がついに production ready な状態になった。
これまで ghq といったツールを使い、GOPATH
直下に自分のワークスペースを作って開発するといった手法とはお別れになるだろう。開発に関してはとても便利になったが、これまで go get
や go install
で Go のバイナリをリモートからインストールしていたが、 modules を使っているワークスペース上で行うと、プロジェクトに使われる module としてインストールされてしまうため、良い方法はまだ存在しない。
しかし、global install
ができるようしたい!といった issue は既に存在するため将来的には可能になるかもしれない。
そんな中、Go Hacker の一人である @FiloSottile 氏が homebrew と gomod を組み合わせて、上記で記述したやりたいことが実現できるツールを開発していた。
彼のツイートで使い方が紹介されている。
I've made a simple brew command to cleanly install binaries from Go modules as Homebrew packages.
— Filippo Valsorda (@FiloSottile) March 15, 2020
$ brew install FiloSottile/gomod/brew-gomod
$ brew gomod https://t.co/TzTye7BzyJ
Secured by the Go Checksum Database!https://t.co/a4LuTECcbw
とてもシンプルに利用可能である。例として 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)
といった感じで簡単に行うことができる。とても便利!
参考