Boxenを削除してhomebrew-caskを使ってみた

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

Boxen を使い続けて半年近く経ちましたが、当初の目的であるアプリケーションの設定完全自動化には至らず、一部のアプリケーションはインストール自動化のみにとどまっています。自分の未熟さゆえmanifest書くのむずかしい…精進します。

自由に使えるMacもう1,2台ほしいな買ってくれないかな!

ある日、アプリケーションのインストール自動化であればBoxenに限らず Homebrew-cask を使うのもいいよねと思い、homebrew-caskを試してみることにしました。

まあこの作業で環境がぶち壊れたとしてもちゃんとBoxenのmanifestが書いてあるなら取り返しつくし、いける!(死亡フラグ)

Homebrew-caskとは

Homebrew-cask は HomebrewのコマンドでGoogleクロームやAdiumをインストール、アンインストールなど管理するものです。 cask は大樽のことですね。 自家製生酒造の大樽 というなかなかいいネーミングじゃないでしょうか。

さっそく使ってみましょう。

Boxenのアンインストール

すでにいろいろなアプリケーションをBoxenでインストールしてしまっているため、 いろいろクリアにするためBoxenをアンインストールします。

1
~/src/our-boxen/script/nuke --all --force

削除するためのスクリプト名が nuke というのがなんともロックです。

これでBoxenがアンインストールされました。併せてBoxenでインストールしたアプリケーションもアンインストールしておきましょう。

Homebrew-caskのインストール

さきほどBoxenをアンインストールしたのでHomebrewも削除されました。 Homebrew公式サイト を見ながら改めてインストールします。 インストールが終わったらPATHなどの設定をして、brewコマンドが動作するようにしておきます。

1
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Homebrew-caskのインストールは phinze/homebrew-cask をtapして brew-cask をインストールするだけです。

1
2
brew tap phinze/homebrew-cask
brew install brew-cask

これで brew cask コマンドが使えるようになりました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
brew cask

  brew-cask provides a friendly homebrew-style CLI workflow for the
  administration of Mac applications distributed as binaries
available commands:
 - uninstall: uninstalls the cask of the given name
 - audit: verifies installability of casks
 - search: searches all known casks
 - cleanup: cleans up cached downloads
 - info: displays information about the cask of the given name
 - install: installs the cask of the given name
 - list: with no args, lists installed casks; given installed casks, lists installed files
 - checklinks: checks for bad cask links
 - create: creates a cask of the given name and opens it in an editor
 - fetch: downloads Cask resources to local cache
 - doctor: checks for configuration issues
 - home: opens the homepage of the cask of the given name
 - update: a synonym for 'brew update'
 - alfred: used to modify Alfred's scope to include the Caskroom
 - edit: edits the cask of the given name

Homebrew-caskでアプリケーションをインストール

Homebrew-caskでインストールされるアプリケーション実体は /opt/homebrew-cask に、 シンボリックリンクが ~/Application 以下に生成されます。

すでに /Application 以下に通常の手段でインストールしている場合は 同一のアプリケーションが複数存在することになりますので、 いったんそれらをアンインストールしたほうがいいかと思います。

brew cask install

アプリケーションは brew cask install [package] でインストールできます。 インストールできるアプリケーション一覧ですが、 Casks をみるとたくさんのアプリケーションが インストールできることがわかりますね。 ここにないアプリケーションも自分で定義を追加して管理させることができます。

とりあえずGoogle Chrome, XtraFinder, xquartzをインストールしてみます。

1
2
3
brew cask install google-chrome
brew cask install xtrafinder
brew cask install xquartz

インストールできました。あららくちん。 xquartzは brew doctor をすると最新版が入ってないぞと怒られることがよくあったのでこれは便利です。

アプリケーションの削除には uninstall コマンドを使用します。

1
brew cask uninstall xquartz

brew cask create

先述のCasksに存在しないアプリケーションをインストールしたい場合は自分でcaskを追加します。 追加したcaskは適当なレポジトリにpushしておき、それをtapすることでcaskコマンドで有効になります。

今回は FireAlpaca をインストールするcaskを作ってみます。

brew cask create コマンドでcaskのひな形をつくることができます。

1
2
# /usr/local/Library/Taps/phinze-cask/Casks/firealpaca.rb が作成されてエディタが起動する
brew cask create firealpaca
1
2
3
4
5
6
7
class Firealpaca < Cask
  url ''
  homepage ''
  version ''
  sha256 ''
  link ''
end

他のcaskを参考にしながら上記ファイルをよしなに編集、自分のレポジトリに追加します。 jiska/homebrew-cask にコミットしてありますので参考にどうぞ。

1
2
3
4
5
6
7
class Firealpaca < Cask
  url 'http://firealpaca.com/download.php?os=mac&key=17813449013210197561d4f66c5aca8c'
  homepage 'http://firealpaca.com'
  version '1.0.47'
  sha256 '5203f27ea841edb33d108f77901e3b4b275527f5203633713e14185cb0c66535'
  link 'FireAlpaca.app'
end

さてインストールしてみましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# tap
brew tap jiska/cask
Cloning into '/usr/local/Library/Taps/jiska-cask'...
remote: Reusing existing pack: 27206, done.
remote: Counting objects: 72, done.
remote: Compressing objects: 100% (69/69), done.
remote: Total 27278 (delta 35), reused 16 (delta 3)
Receiving objects: 100% (27278/27278), 10.10 MiB | 780.00 KiB/s, done.
Resolving deltas: 100% (15646/15646), done.
Checking connectivity... done.
Warning: Could not tap jiska/cask/brew-cask over phinze/cask/brew-cask
Tapped 1 formula

# install
brew cask install firealpaca
==> Downloading http://firealpaca.com/download.php?os=mac&key=17813449013210197561d4f66c5
######################################################################## 100.0%
==> Symlinking App 'FireAlpaca.app' to '/Users/jiska/Applications/FireAlpaca.app'
🍺  firealpaca installed to '/opt/homebrew-cask/Caskroom/firealpaca/1.0.47' (34 files, 57M)

インストールできました!

おわり

アプリケーションのインストールはできました。 もちろんこのあと手動で設定を行う必要があります。

この手動で設定を行う手間が大変なのでBoxenを使って自動化を試みてるわけですが、 とりあえずアプリケーションをインストールしたいという場合に Homebrew-caskは有用だと思います。