[macOS General] brew bundle / cask で Homebrew も他の Mac アプリもまとめて管理・インストールする
アプリケーションのインストール。
以前から気になっていた BOXEN について Qiita で調べたところ、個人で利用するには保守や管理に困りそうだと感じました。
ちょこちょこインストールを手動で行っていましたが、brew bundle と cask を利用する方法が良さそうなので、導入することにしました。
Contents
OS インストールから、brew bundle による一括インストールまでの手順
今回は OS X Mavericks (10.9) にセットアップしています。
事前に Brewfile を用意しておくことで、アプリケーションの再インストールを以下の手順で実行できます。
- Xcode をインストールする
- HomeBrew をインストールする
- Brewfile を取得する
- brew bundle を実行する
- AppStore の購入履歴から必要なアプリをインストールする
App Sore のアプリ以外をパッケージ管理することができるようになります。
Xcode をインストールする
- App Store から Xcode をインストールする。
- 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.
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 の作成とメンテナンス
事前にファイルを作成することが肝なので、作成方法を確認します。
Brewfile は他の dotfiles と一緒に管理しておくとよさそう。
$ mkdir ~/dotfiles
$ touch dotfiles/Brewfile
$ open dotfiles/Brewfile
ファイルの内容は、brew コマンドをそのまま書いていく形式。
# 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
古いバージョンをインストールするためのリポジトリ。
tap phinze/homebrew-cask
公式に含まれない 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 でインストールしたアプリはどこに収められているのか
標準では /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
に設定を加えるか、実行時にオプションを付与することで変更することができる。
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
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/
その他
細かな挙動がどうなるのかなという点が、こちらで確認されていました。