BrewfileでHomebrewのパッケージを管理する

森裕介(プログラマー)
無念

この投稿は現在使用できない記述が含まれています。 お手数ですが こちらの投稿 をご確認ください。

Homebrewでインストールするもの一覧を管理したい

前回Boxenをアンインストールしてしまった ので なんとかしてインストールするパッケージを管理しないといけません。 なにか適当なシェルを用意してそこに brew install hoge... と書き連ねてもいいけどイマイチ…。 もう少しエレガントに管理するために brew bundle コマンドを使います。

brew bundleとは

Homebrew 0.9からの機能で Brewfile を用意することで 中身を参照して自動でbrewコマンドを発行してくれるというものです。 バージョン0.9以上のHomebrewを使っているなら大丈夫です。

1
2
brew -v
Homebrew 0.9.5

Homebrewのアップデート

バージョンが古い場合はHomebrewをアップデートしておきましょう。 Homebrewのインストール先に移動してレポジトリを最新の状態にすればOKです。

1
2
3
4
5
6
7
8
9
10
11
12
13
# Homebrewのインストール先に移動
cd `brew --prefix`

# git remote を確認
git remote -v
origin  https://github.com/Homebrew/homebrew (fetch)
origin  https://github.com/Homebrew/homebrew (push)

# pull
git pull origin master
From https://github.com/Homebrew/homebrew
 * branch            master     -> FETCH_HEAD
...

ターミナルを再起動、または source ~/.profile などしてバージョンを確認してみます。

1
2
brew -v
Homebrew 0.9.5

brew bundle

それでは brew bundle コマンドを使ってみます。

Brewfile という名前のファイルがカレントディレクトリにあればそれを参照、 パスまたはファイルを直接指定することもできます。

それぞれの挙動は以下の通りです。

1
2
3
brew bundle              # Looks for "./Brewfile"
brew bundle path/to/dir  # Looks for "path/to/dir/Brewfile"
brew bundle path/to/file # Looks for "path/to/file"

わがBrewfile

自分のBrewfile から設定を抜粋します。 updateしてtapしてpackagesをインストールしてcask packagesもインストール…と特に捻ったことはしてません。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
update

# add repositories
tap homebrew/binary
...
tap phinze/cask

# packages
install bash-completion
...
install "http://toolbelt.treasuredata.com/brew/td-agent.rb"

cleanup

# for cask
install brew-cask

cask update

# packages from cask
cask install appcleaner
...
cask install xtrafinder

cask cleanup

実行してみます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
brew bundle
Already up-to-date.
Warning: Already tapped!
...
Warning: Already tapped!
Warning: bash-completion-1.3 already installed
...
Warning: wget-1.15 already installed
######################################################################## 100.0%
Warning: td-agent-1.1.17 already installed
Warning: brew-cask-0.32.0 already installed
Warning: Cask for appcleaner is already installed. Use `--force` to install anyways.
...
Warning: Cask for xtrafinder is already installed. Use `--force` to install anyways.
==> Removing dead symlinks
==> Removing cached downloads

おわり

Brewfileを使うことでインストールするパッケージの管理が楽になりました。 まだ使っていない人は是非是非つかってみてください。