[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
“`
エディタが起動し、ひな形ファイルを編集できるようになる。
既存の 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]