[macOS General] brew bundle / cask で Homebrew も他の Mac アプリもまとめて管理・インストールする
アプリケーションのインストール。
[markdown]
以前から気になっていた [BOXEN](http://boxen.github.com/) について [Qiita で調べた](http://qiita.com/tags/boxen)ところ、個人で利用するには保守や管理に困りそうだと感じました。
ちょこちょこインストールを手動で行っていましたが、brew bundle と cask を利用する方法が良さそうなので、導入することにしました。
> * [BrewfileでHomebrewパッケージを管理する | SOTA](http://deeeet.com/writing/2013/12/23/brewfile/)
> * [私もBoxen止めてBrewfile+brew-caskにした / マスタカの ChangeLog メモ](http://masutaka.net/chalow/2014-01-25-1.html)
> * [BoxenやめてBrewfile+homebrew-caskにした – 飲んだり寝たり](http://nomnel.net/blog/boxen-to-brewfile/)
## OS インストールから、brew bundle による一括インストールまでの手順
今回は OS X Mavericks (10.9) にセットアップしています。
> * [【Mac】OS X Mavericks (マーベリックス) をクリーンインストールする方法 | 和洋風KAI](http://wayohoo.com/mac/tips/how-to-clean-install-os-x-mavericks.html)
事前に Brewfile を用意しておくことで、アプリケーションの再インストールを以下の手順で実行できます。
1. Xcode をインストールする
2. HomeBrew をインストールする
3. Brewfile を取得する
4. brew bundle を実行する
5. AppStore の購入履歴から必要なアプリをインストールする
App Sore のアプリ以外をパッケージ管理することができるようになります。
### Xcode をインストールする
1. App Store から Xcode をインストールする。
1. Terminal.app から Xcode Command Line Developer Tools をインストールする。
“`
$ xcode-select —install
“`
ちなみに、git のバージョンを確認しようとしたら、自動で立ち上がってインストールしてくれました。
“`
$ git –version
xcode-select: note: no developer tools were found at ‘/Applications/Xcode.app’, requesting install. Choose an option in the dialog to download the command line developer tools.
$ git –version
git version 1.8.3.4 (Apple Git-47)
“`
### Homebrew をインストールする
いつも通り、Terminal.app に以下を貼付けて実行します。
“`
$ ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”
$ brew doctor
Your system is ready to brew.
“`
> * [Homebrew — MacPortsは酒でも飲みたくなるでしょ?じゃあHomebrewを使おう!](http://brew.sh/index_ja.html)
> * [Homebrew: インストールと使い方 | deadwood](https://www.d-wood.com/blog/2013/06/30_4148.html)
#### the Xcode/iOS license requires というエラーが出たら
Xcode.app を起動して、ライセンス契約を承認してください。
“`
$ brew doctor
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
:
“`
### Brewfile を取得する
ファイルがあれば、`git clone` などで持ってくるだけで、環境を構築できるようになります。
事前に準備しておきます。
“`
$ git clone https://path/to/repo
“`
### brew bundle を実行する
bundle コマンドは、Homebrew の標準機能。
`Brewfile` ファイルを作成し、下記の実行で Homebrew の formulae がインストールされます。
“`
$ brew bundle path/to/Brewfile
“`
もとは brewdler というプロジェクトだったようです。
> * [「BrewfileでHomebrewパッケージを管理する」をやってみた – sonots:blog](http://blog.livedoor.jp/sonots/archives/35251881.html)
> * [andrew/brewdler](https://github.com/andrew/brewdler)
## Brewfile の作成とメンテナンス
事前にファイルを作成することが肝なので、作成方法を確認します。
Brewfile は他の dotfiles と一緒に管理しておくとよさそう。
“`
$ mkdir ~/dotfiles
$ touch dotfiles/Brewfile
$ open dotfiles/Brewfile
“`
ファイルの内容は、brew コマンドをそのまま書いていく形式。
“`ruby:Brewfile
# Make sure using latest Homebrew
update
# Update already-installed formula
upgrade
# Add Repository
# tap homebrew/versions
# tap homebrew/binary
# For cask
tap phinze/homebrew-cask
install brew-cask
# Formula
install zsh –disable-etcdir
install git
# .dmg apps
cask install kobito
cask install alfred
cask alfred link
# Remove outdated versions
cleanup
“`
### tap homebrew/versions
古いバージョンをインストールするためのリポジトリ。
> * [Homebrew-versionsで特定バージョン指定してインストールする](http://blog.cyclogy.com/2014/02/08/homebrew-versions/)
### tap phinze/homebrew-cask
公式に含まれない homebrew-cask のリポジトリを追加します。
> * [phinze/homebrew-cask](https://github.com/phinze/homebrew-cask)
### install brew-cask
formulae をインストールします。
### cask install kobito
cask を使って、.dmg アプリをインストールします。
### cask alfred link
alfred からアプリを呼び出せるようにするための特別なコマンド。
後述の補遺を参照ください。
## cask で使いたいアプリを探す
上記の Brewfile を実行するか、下記のコマンドを実行すれば、homebrew-cask が利用できる状態になります。
“`
$ brew tap phinze/homebrew-cask
$ brew install brew-cask
“`
`brew cask search` コマンドでアプリを探すことができます。
“`
$ brew cask search bartender
==> Exact match
bartender
“`
見つからないアプリは、以下で対応することができます。
* `brew tap caskroom/versions` を追加してバージョン違いを探す。
* 自分で cask を作成する
> * [brew cask で異なるバージョンをインストールする、もしくはアプリを追加する | deadwood](https://www.d-wood.com/blog/2014/03/27_5895.html)
## 補遺
### brew cask でインストールしたアプリはどこに収められているのか
標準では `/opt/homebrew-cask/Caskroom` に入っている。
#### .dmg ファイルを手動でインストールした場合のレイアウト
AppCleaner を利用して関連ファイルを洗い出した結果。
“`
/Applications/Kobito.app
~/Library/Preferences/com.qiita.Kobito.plist
~/Library/Caches/com.qiita.Kobito
~/Library/Kobito
“`
#### brew cask でインストールした場合のレイアウト
~/Applications/Kobito.app にシンボリックリンクが張られている。
このシンボリックリンクからアプリを起動できる。
cask のバージョンは最新ではなかったが、ソフトウェアアップデートも正常に行えた。
“`
$ pwd
/Users/****/Applications
$ ls -al
total 8
drwx—— 4 **** staff 136 3 8 23:22 .
drwxr-xr-x@ 27 **** staff 918 3 8 20:20 ..
-rw-r–r–@ 1 **** staff 0 3 6 16:21 .localized
lrwxr-xr-x 1 **** staff 51 3 8 23:22 Kobito.app -> /opt/homebrew-cask/Caskroom/kobito/1.8.7/Kobito.app
“`
AppCleaner を利用して関連ファイルを洗い出した結果。
“`
/opt/homebrew-cask/Caskroom/kobito/1.8.7/Kobito.app
~/Library/Preferences/com.qiita.Kobito.plist
~/Library/Caches/com.qiita.Kobito
~/Library/Kobito
“`
### brew cask のファイルレイアウトを変更する
これらのレイアウトは、`.bash_profile` や `.zshenv` に設定を加えるか、実行時にオプションを付与することで変更することができる。
> * [homebrew-cask/USAGE.md at master · phinze/homebrew-cask](https://github.com/phinze/homebrew-cask/blob/master/USAGE.md)
> * [homebrew-caskが良さそうなので導入してみた – About Digital](http://blog.digital-bot.com/blog/2013/09/08/homebrew-cask/)
### Alfred.app で利用できるようスコープに追加する
標準のレイアウトでは、/Application から外れるため、Alfred.app からアプリを利用することはできない。
Brewfile で設定を行うか、コマンドを実行することで、Alfred.app からアプリを呼び出せるように設定できる。
“`
$ brew cask alfred
==> brew cask alfred
manages integration with Alfred; allows applications installed with
homebrew cask to be launched by Alfred by adding the Caskroom to Alfreds
search paths
subcommands:
status – reports whether Alfred is linked
link – adds Caskroom to alfred search paths
unlink – removes Caskroom from Alfred search paths
“`
> * [Homebrewで*.dmgなアプリをインストールしたい→それhomebrew-caskで出来るよ – Qiita](http://qiita.com/paming/items/15ec3543cc094d411428)
### brew cask install sublime-text
コマンドラインから `subl` で呼べるよう、symlink もあわせて作ってくれました。
“`
$ brew cask install sublime-text
==> Caveats
Cask sublime-text installs files under “/usr/local”. The presence of such
files can cause warnings when running “brew doctor”, which is considered
to be a bug in homebrew-cask.
==> Downloading http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.dmg
######################################################################## 100.0%
==> Symlinking App ‘Sublime Text 2.app’ to ‘/Users/deadwood/Applications/Sublime
==> Symlinking Binary ‘subl’ to ‘/usr/local/bin/subl’
==> Success! sublime-text installed to /opt/homebrew-cask/Caskroom/sublime-text/
“`
### その他
細かな挙動がどうなるのかなという点が、こちらで確認されていました。
> * [Homebrewで*.dmgなアプリをインストールしたい→それhomebrew-caskで出来るよ – Qiita](http://qiita.com/paming/items/15ec3543cc094d411428)
[/markdown]