注) 2011/02/23 追記: 会社の勉強会で発表した際に会社のブログ記事としてほぼ同じ内容で公開しています。
$ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"
$ brew install git $ brew update $ brew home $ man brew
指定文字列( text )の部分マッチで Formula を検索する。
指定正規表現のマッチングで Formula を検索する。
インストール済みの全ての Formula を表示する。
その formula のインストール済みファイルを表示する。
その formula についての情報を表示する。
その formula の github の履歴ページをブラウザで開く。
全ての Formula の情報のサマリを表示する。
http:// 始まりの URL を指定すると、その URL からパッケージ名とバージョン番号を推測して表示する。
Homebrew のホームページをブラウザで開く。
その formula のホームページをブラウザで開く。
その formula を削除(アンインストール)する。
その formula のインストールされたファイルにリンクする。
その formula のインストールされたファイルへのリンクを解除する。
デッドリンクになっているものを削除する。
アップデートがある Formula の一覧を表示する。
その formula の依存関係を表示する。 --1 をつけた場合、一階層の依存関係のみを表示。
その formula に依存している Formula を表示する。 --installed をつけた場合、インストール済みの Formula のみを表示する。
システムの潜在的な問題を報告する。
その formula のファイル内容を表示する。
古いバージョンの Formula を削除する。 formula が指定されれば、その formula についてのみ。
git を使って Homebrew および Formula の新しいバージョンにアップデートする。
パッケージのソースアーカイブの URL を指定して Formula を作成する。
MacPorts か Fink のパッケージ検索結果ページをブラウザで開く。
指定した formula をエディタで開く。
全ての Formula を TextMate(mate) で開く。
http://wiki.github.com/mxcl/homebrew/formula-cookbook
$ brew create http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb
Formula name [mymemcheck]:
... edit Formula file ...
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage ''
md5 ''
# depends_on 'cmake'
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
end
$ brew cat mymemcheck
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage 'http://gist.github.com/227178'
md5 ''
version '0.0.1'
# depends_on 'cmake'
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
end
$ brew fetch mymemcheck
==> Downloading http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb
######################################################################## 100.0%
MD5: 44c84bde2574a1e6f125a81aa4e8ca57
SHA1: 8100730d0bf26c2d374aba2ceb5f8e1b4fc73069
$ brew edit mymemcheck
$ brew cat mymemcheck
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage 'http://gist.github.com/227178'
sha1 '8100730d0bf26c2d374aba2ceb5f8e1b4fc73069'
version '0.0.1'
# depends_on 'cmake'
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
end
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage 'http://gist.github.com/227178'
sha1 '8100730d0bf26c2d374aba2ceb5f8e1b4fc73069'
version '0.0.1'
def install
bin.install Dir['*']
end
end
$ brew install -vd mymemcheck
$ which mymemcheck.rb
/usr/local/bin/mymemcheck.rb
スクリプトファイルを /usr/local/bin にリンクするだけなら、Formula の代わりに ScriptFileFormula を継承すると簡単。
# see ack.rb for an example usage
class ScriptFileFormula <Formula
def install
bin.install Dir['*']
end
end
スクリプトファイルを gist から持ってくるなら、Formula の代わりに GithubGistFormula を継承すると簡単。
# see flac.rb for example usage
class GithubGistFormula <ScriptFileFormula
def initialize name='__UNKNOWN__'
super name
@version=File.basename(File.dirname(url))[0,6]
end
end
brew-{command} という名前の実行可能ファイルか、brew-{command}.rb という Ruby スクリプトが、PATH からたどることが出来るなら、 command を外部コマンドとして実行できる。 実行可能ファイルは exec で実行され、ruby スクリプトファイルは、require によって実行される。
指定した formula か全ての Formula が Homebrew のコーディングスタイルに違反していないか検査する。
その formula の tarball をダウンロードするか VCS からチェックアウトする。MD5 と SHA1 のチェックサムも表示。
man ページを再構築する。
依存関係が失われた Formula を調べる。
利用可能な Formula をブラウズするサーバアプリを立ち上げる。
test メソッドを実装している Formula について、テストを実行する。
グラフデータを出力。
$ cd /usr/local $ git add Library/Formula/foo.rb $ git commit
$ gem install github $ cd `brew --prefix` $ github fork $ git push myname master
指定したパスにマッチするものを keg の bin/ にインストールする。
path にあるファイルの中身の before から after に書き換える。
patches メソッドを定義して、その戻り値で当てたいパッチを文字列や Hash で指定できる。
install 時に --HEAD オプションを指定すると trunk/master/HEAD をチェックアウトする。 そのときに使うリポジトリの URL を head メソッドで指定しておく。
class Foo < Formula head 'git://github.com/mxcl/lastfm-cocoa.git' end
ダウンロード方法を指定する。
class Bar < Formula def download_strategy; GitDownloadStrategy; end head '/users/abc/src/git.git' end
コンパイル不要でコピーするだけの様な場合に使える。
prefix.install ['file1', 'file2'] prefix.install Dir['*']
| 変数名 | デフォルト値 | 例示 |
| name | Formula の名前 | foo |
| HOMEBREW_PREFIX | /usr/local | |
| prefix | #{HOMEBREW_PREFIX}/Cellar/#{name}/#{version} | /usr/local/Cellar/foo/0.1 |
| bin | #{prefix}/bin | /usr/local/Cellar/foo/0.1/bin |
| lib | #{prefix}/lib | etc. |
| man | #{prefix}/share/man |
/usr/local/bin などへリンクせず、keg で止める。
Keyword(s):[osx] [homebrew]
References: