あんパン

こしあん派

手軽に自作アプリケーションをbrew installできるようにする

先日、乳首からレーザービームを出す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の実行ファイルをインストールするよう定義しました。

sha256url に指定したファイルのSHA256メッセージダイジェストを記述します。これは openssl dgst -sha256 [filename] のようにコマンドを発行することで取得することができます。

以上の内容をpushしましょう。

これで

$ brew tap user_name/name
$ brew install app_name

でアプリケーションをインストールできるようになります。

install メソッドの中には man コマンドで呼び出すマニュアルをインストールする指定、依存ライブラリを同時にインストールする指定などもあります。詳しくはFormula Cookbook · Homebrew/homebrew Wikiを読みましょう。

サンプル

masawada/homebrew-chikubeam

$ brew tap masawada/chikubeam
$ brew install chikubeam