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

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

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

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

> * [brew bundle / cask で Homebrew も他の Mac アプリもまとめて管理・インストールする | deadwood](https://www.d-wood.com/blog/2014/03/12_5808.html)

## インストール

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

> * [caskroom/homebrew-versions](https://github.com/caskroom/homebrew-versions)

“`prettyprinted
% 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` すると英語版となるが、日本語版が追加できます。

“`prettyprinted
% 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
“`

インストールします。

“`prettyprinted
% 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 を作成する
1. 本家を Fork して Cask を作成する

> * [Homebrew Cask](http://caskroom.io/)

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

Note

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

### Cask の仕様

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

#### 命名ルール

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

> * [homebrew-cask/doc/CASK_NAMING_REFERENCE.md at master · phinze/homebrew-cask](https://github.com/phinze/homebrew-cask/blob/master/doc/CASK_NAMING_REFERENCE.md)

#### checksum

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

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

sha256 が仕様。

> * [homebrew-cask/doc/CASK_LANGUAGE_REFERENCE.md at master · phinze/homebrew-cask](https://github.com/phinze/homebrew-cask/blob/master/doc/CASK_LANGUAGE_REFERENCE.md#checksum-stanza-details)

### brew cask create する場合

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

“`prettyprinted
% brew cask create my-cask
“`

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

2014-03-27_cask_01

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

“`ruby:/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` に保存されている。 ```prettyprinted % brew cask search my-cask ==> Exact match
my-cask
“`

### リポジトリを Fork する場合

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

> * [みんなhomebrew-caskって知ってるか? – Qiita](http://qiita.com/ryurock/items/1432578d364985f6cb06)
> * [homebrew-caskを使って簡単にMacの環境構築をしよう! | nanapi TechBlog](http://nanapi.co.jp/blog/2014/03/05/homebrew-cask/)

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

“`prettyprinted
% 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
“`

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

“`prettyprinted
% 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 コマンドで扱えるようになる。

“`prettyprinted
% git push origin master
“`

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

> * [GitHub: 実録!pull request (前編) | deadwood](https://www.d-wood.com/blog/2014/03/28_5915.html)
[/markdown]