rcmdnk's blog
Last update

Bitter Brew: The Rise and Fall of Anheuser-Busch and Americas Kings of Beer

昨日、Homebrewの拡張:brewdler, tap, cask という記事でbrewdlerを試したことを書きましたが、 どうもただリストを管理してるだけなうえ、 tapでインストールするパッケージはきちんとインストール出来ないし、 削除も対応してなかったりして利点が見いだせなかったので、 それらを出来るようにしたスクリプトを作りました。

Brewall

ファイルはGitHubにあります。

Brewallのインストール

brew-tapでインストール出来るようにしたので、 Homebrewがインストールされてれば

$ brew tap rcmdnk/brewall
$ brew install brewall

でインストール出来ます。

必要なファイルは/bin/brewallだけなので、これを取ってきてパスが通った好きな所に入れてもOKです。

使い方

インプットファイル

管理はデフォルトでは/usr/local/Library/Brewfileをインプットファイルとして使います。 最初に

$ brewall -i

とすると、現在インストールされているファイルからBrewfileを作ってくれます。 このファイルはBrewdlerでも使えますし、 Brewdler様に作ったBrewfileもそのまま流用できます。

Brewdler同様、tap/caskにも対応していて、こんな感じで Brewfilwを作って下さい(既にHomebrewで何かインストールしてある場合は先 にbrewall -iでファイルを作りそれを編集して下さい):

brew 'mercurial'
brew 'macvim --with-lua'
tap 'phinze/cask'
cask 'firefox'

最初にコマンド(brew/tap/cask)、次にパッケージやインストール時のオプションです。 基本的2番目以降の項目はbrew install等の引数に直接渡されるだけなので、 brew installに使える引数は全て使えます。

なので、MacVimを+luaでコンパイルしてインストールしたい場合は上の様に--with-lua付きで。 brewall -iでも、これらのオプション付きでインストールしたものはオプション付きで初期化します。

また、Brewdlerだとtapで書いただけの場合、brew installが行われないので 手作業が必要でしたが(上のファイルだとcaskがないと言って怒られる)、 Brewallはbrew installもパッケージ名を探してきて自動的に一緒にbrew installもされます。

追記: 2013/09/15

brew-tapに関して少し理解してなかった部分があって1レポジトリ1パッケージ(Formula) 限定にしてましたが、そうでもないので、 それに対応するようアップデート:Brewallにtapall追加

これに伴いtapだけの場合はtapするだけ、tapallコマンドを使うと レポジトリ内の全てのFormulaeに従いパッケージをインストールする様になります。 (上で書かれてる様な自動インストールをしたい場合はtapallを使う。)

追記ここまで

また、caskコマンドがある場合、自動でtap 'phinze/cask'と同じことをするようにしてあるので、 上の例ではphinze/caskの項を落としてもOKです。

順番も、先にcaskの項目があっても、その時にcaskをインストールしてしまうので 問題ありません。

インストール

引数なしでbrewallを行うと、Brewfileにあるパッケージをインストールします。

MacVim等、アプリケーションを含むパッケージの場合、-lを与えることで、 ローカルの~/Applications/へ各アプリケションへのリンクを作ります(brew linkapps)。 もし、グローバルな/Applications/へインストールしたい場合は-gを使います。 この場合はsudoするのでrootパスワードを聞かれます。

クリーンアップ

brewall -cとすると、Brewfileに無い項目を削除します。 デフォルトではdry runモードで走るので実際には削除しません。

一度brewall -cでチェックして、実際に削除したい場合は

$ brewall -c -r

-rを付けて下さい。

追記: 2013/11/25

現在のbrewall(v0.0.7以降)では、 レポジトリ情報用にこの-rを使いたかったので、オプションの定義を変更して -Cがこの実際に削除する時に使うオプションになっています。

追記ここまで

また、caskコマンドがある場合、tap 'phinze/cask'がなくてもこれを削除しません。

Brewfile編集

$ brewall -e

とするとBrewfileを編集できます。Editorはデフォルトではvimですが、 EDITOR変数が設定してある場合はその値を使います。

まとめ

Homebrew等、基本Rubyで書かれてるのでRubyで作った方が喜ばれるところかもしれませんが、 RubyはOctopressで使うくらいでおぼつかない(じゃあなぜOctopressを使ったか。。。)ので、 簡単にシェルスクリプトで書きました。

Brewdlerで出来る事は網羅し、かつ、インストールは全自動化、 削除も簡単に行える様にできたので取り敢えず満足なところ。

Sponsored Links
Sponsored Links

« Homebrewの拡張:brewdler, tap, cask Macでssh時の'Permission denied (publickey).'の解決法 »

}