おそらくはそれさえも平凡な日々

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からつけました。

created at
last modified at
comments powered by Disqus