[macOS General] brew cask で異なるバージョンをインストールする、もしくはアプリを追加する

異なるバージョンを cask install する。

例えば、Sublime Text 3 など。
βや古いバージョン、各国語バージョンをインストールしたい場合に利用します。

brew cask については、下記を参照ください。

インストール

tap homebrew/versions するように、cask のレポジトリを追加します。

% brew tap caskroom/versions
Cloning into '/usr/local/Library/Taps/caskroom-versions'...
remote: Reusing existing pack: 1062, done.
remote: Total 1062 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1062/1062), 143.55 KiB | 171.00 KiB/s, done.
Resolving deltas: 100% (561/561), done.
Checking connectivity... done.
Tapped 0 formula

つかいかた

例えば、thunderbird を cask install すると英語版となるが、日本語版が追加できます。

% brew cask search thunderbird
==> Exact match
thunderbird
==> Partial matches
thunderbird-ja
% brew cask info thunderbird-ja
thunderbird-ja: 24.2.0
http://www.mozilla.jp/thunderbird/
Not installed
https://github.com/caskroom/homebrew-versions/commits/master/Casks/thunderbird-ja.rb

インストールします。

% brew cask install thunderbird-ja
==> Downloading http://download-installer.cdn.mozilla.net/pub/thunderbird/releas
######################################################################## 100.0%
==> Symlinking App 'Thunderbird.app' to '/Users/****/Applications/Thunderbir
  thunderbird-ja installed to '/opt/homebrew-cask/Caskroom/thunderbird-ja/24.2.0' (132 files, 109M)

Cask にないアプリを追加する

方法は2つ。

  1. brew cask create コマンドでローカル用の Cask を作成する
  2. 本家を Fork して Cask を作成する

brew cask create で作成・実行して、本家へ pull request するのがよさそう。

Note

アプリの追加手順を、Qiita にまとめ直しました。
homebrew-cask – brew cask にアプリがなかったら追加しよう – Qiita

Cask の仕様

追記:2014/04/02
作成にあたってつまづいた点を追記する。

命名ルール

基本は brew cask create で。
元アプリの .app をのぞいた名称がベースとなるよう。

checksum

下記はアプリの公式サイトに情報がなかった。
.dmg ファイルから checksum を作成することでよいとのこと。

% shasum -a 256 ~/Downloads/OmniGrafflePro-5.4.4.dmg
396a4adaadb82d651ea6ec8b141c9e5f5b0b5f53c6edee5e7806a896783892c9  /Users/****/Downloads/OmniGrafflePro-5.4.4.dmg

sha256 が仕様。

brew cask create する場合

以下のコマンドを実行する。

% brew cask create my-cask

エディタが起動し、ひな形ファイルを編集できるようになる。

2014-03-27_cask_01

既存の Cask を参考にファイルを作成する。
例えば、ドイツ語版を参考に Firefox の日本語版を作成。

/usr/local/Library/Taps/phinze-cask/Casks/firefox-ja.rb
class FirefoxJa < Cask
  url 'https://download.mozilla.org/?product=firefox-latest&os=osx&lang=ja-JP-mac'
  homepage 'http://www.mozilla.jp/firefox/'
  version 'latest'
  no_checksum
  link 'Firefox.app'
end

ファイルを保存すると、以下のように扱うことができるようになる。
ファイルは /usr/local/Library/Taps/phinze-cask/Casks/my-cask.rb に保存されている。

% brew cask search my-cask
==> Exact match
my-cask

リポジトリを Fork する場合

作成した Cask を pull request する場合に利用する。
caskroom/homebrew-versions を Fork して、利用したいパッケージの cask(?) を作成する。

Cask を作成する方法は前述と同じ。
homebrew-versions/Casks/firefox-ja.rb に保存する。
Fork したリポジトリを追加して、扱うこともできる。

% brew tap
caskroom/versions
phinze/cask
sanemat/font
% brew tap DriftwoodJP/homebrew-versions
Cloning into '/usr/local/Library/Taps/driftwoodjp-versions'...
remote: Reusing existing pack: 1062, done.
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 1066 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1066/1066), 146.40 KiB | 169.00 KiB/s, done.
Resolving deltas: 100% (561/561), done.
Checking connectivity... done.
Tapped 0 formula
% brew tap
caskroom/versions
driftwoodjp/versions
phinze/cask
sanemat/font

ちなみに重複するとこんな表示になる。

% brew cask search firefox
==> Exact match
firefox
==> Partial matches
caskroom-versions/firefox-aurora    driftwoodjp-versions/firefox-beta
caskroom-versions/firefox-beta      driftwoodjp-versions/firefox-beta-de
caskroom-versions/firefox-beta-de   driftwoodjp-versions/firefox-beta-gb
caskroom-versions/firefox-beta-gb   driftwoodjp-versions/firefox-de
caskroom-versions/firefox-de        driftwoodjp-versions/firefox-nightly
caskroom-versions/firefox-nightly   driftwoodjp-versions/firefox-ux
caskroom-versions/firefox-ux        firefox-ja
driftwoodjp-versions/firefox-aurora multifirefox

Fork したリポジトリに push すると、前述の通り cask コマンドで扱えるようになる。

% git push origin master

作成した cask は、pull request すると良い。