先日、乳首からレーザービームを出すchikubeamというアプリケーションを作り、せっかくなので brew install chikubeam できると良いなと思い調べてみました。
方針
brew install chikubeamするためには以下の2通りの方法があります。
- Homebrew/homebrewにPull Requestを送る
- 独自リポジトリを
brew tapしてからbrew installする - chikubeamは下ネタ要素も含んでいるので今回は後者を選択しました。
リポジトリの作成
brew tap するにはGitHubにリポジトリを作成する必要があります。リポジトリの名前は homebrew-[name] にします。すると、 brew tap [user name]/[name] でtapできるようになります。
パッケージ情報の記述
homebrew-[name] ワークツリーのルートに [app_name].rb というRubyのファイルを作成します。
require "formula" class Chikubeam < Formula homepage "https://github.com/masawada/chikubeam" url "https://github.com/masawada/chikubeam/archive/v1.2.tar.gz" sha256 "606d00bc4736ef3fe10fdaa554985a08fd5642279a96f30ab2727b2cc7a771c1" head "https://github.com/masawada/chikubeam.git" version "1.2" def install system "make" bin.install "chikubeam" end end
まず、 require "formula" します。 Formula を継承したclassを作成し、その中に homepage などのURL指定とinstallメソッドを定義します。
ここでは make して生成されたchikubeamの実行ファイルをインストールするよう定義しました。
sha256 は url に指定したファイルのSHA256メッセージダイジェストを記述します。これは openssl dgst -sha256 [filename] のようにコマンドを発行することで取得することができます。
以上の内容をpushしましょう。
これで
$ brew tap user_name/name $ brew install app_name
でアプリケーションをインストールできるようになります。
install メソッドの中には man コマンドで呼び出すマニュアルをインストールする指定、依存ライブラリを同時にインストールする指定などもあります。詳しくはFormula Cookbook · Homebrew/homebrew Wikiを読みましょう。
サンプル
$ brew tap masawada/chikubeam $ brew install chikubeam