Homebrewで自作ツールを簡単にインストール可能にする
まとめを先に
- 自分のGitHub上にtapリポジトリをサクッと作る
- そこにFormulaと呼ばれるファイルをコミットする
maltmill
というツールを使うと簡単!
用語
- Formula
- 各ツールのインストール手順を記述するファイル
- maltmill.rb であれば maltmillのインストーラー
- RubyのDSLで記述
- tap
- Formulaを配置するリソースリポジトリ
- GitHub上に"homebrew-"プレフィクスで作成する
これらは自前で簡単に作ることができます。公式リポジトリに頑張ってpull requestを送ることもできますが、個人的なものであれば気軽に自前で作ってしまうことがおすすめです。
tapリポジトリの作成
前項で書いたとおり"homebrew-"プレフィクスを付けて命名すればOKです。僕の場合homebrew-tapという名前で作っています。
https://github.com/Songmu/homebrew-tap/
このリポジトリ上のディレクトリ直下、もしくは Formula/ ディレクトリ配下にFormulaを配置します。上記のリポジトリの場合、Formula/ 以下に配置しています。現状7個のツールを登録しています。
このtapを利用したい場合は"homebrew-"プレフィクスを除いた形で以下のように登録します。
% brew tap Songmu/tap
また、以下の様にダイレクトにtapの登録とツールのインストールをおこなうことも可能です。
% brew install Songmu/tap/maltmill
Formulaの作成
FormulaはrubyのDSLファイルです。他のツールのFormulaを参考に見よう見まねで書くこともできますが、ここでは maltmill
というツールの紹介をします。
https://github.com/Songmu/maltmill
実は1年以上前に作っていて、作りかけ気味なのですが、使い物にはなるし、実際活用しているので紹介することにしました。
コンセプトとしては、GitHub Releasesに登録しているアーカイブから簡単にFormulaを新規作成したり、更新したりすることができるものです。
インストール
# brew
% brew install Songmu/tap/maltmill
# go get
% go get github.com/Songmu/maltmill/cmd/maltmill
Formulaの新規作成
前提として、GitHub Releasesにアーカイブがアップロードされている必要があります。例えば、以下のようにすれば、ghqのFormulaが作成されます。
% maltmill new -w motemen/ghq
この場合、Formulaはghq.rbというファイル名で作成されます。適宜調整して、tapリポジトリにcommitしてください。
Formulaの更新
GitHub Releasesに新しいリリースが登録されている場合、以下のようにFormulaファイルを指定することで更新することができます。
% maltmill -w Formula/ghq.rb
これは、versionとアーカイブurlの取得と書き換え、アーカイブのsha256の再計算とその書き換えも自動でおこなってくれます。あとは更新内容を確認して、リポジトリにcommitするだけです。それで新しいバージョンをbrewでインストールすることが可能になります。
まとめ
まだ荒削りな部分もありますが、是非ご利用ください。mackerel-agentも以下でtapを公開していますが、maltmillに乗り換えていければいいな、と思っています。
https://github.com/mackerelio/homebrew-mackerel-agent
命名は、ビール醸造関連が良いなと思って、ビール製造工程の最初に麦芽を挽くのに使うMalt Millからつけました。