自家製樽の密造方法
homebrew-cask には、おそらく無いだろう、と思われるアプリを入れてみる事に。
ターゲットは gimp と mytracks、そして macvim for kaoriya 。
オフィシャルな手続きは、homebrew-cask USAGEにあります。
ここでは、こちらの "3. 使いたいアプリの cask がない場合はどうすれば?"を主な参照先としてます。*1
作業の大まかな区切りは、こんな感じでしょうか。;
- 自分専用 homebrew-cask の repo を github 上に用意。
- ローカルにも、1 に準じた構成を用意。
- cask 作成に必要な情報を用意。
cask_namer
shasum
- cask を作成。
brew cask create
- 動作確認。
tap
brew cask install
ちょっと具体的にターミナルでの作業で表わしてみると、以下のような感じになります?
自分専用 homebrew-cask として mycasks
を用意し、MacVim.app
をインストールしてくれる cask を作る、というシーンを例に。;
% #github にリポジトリ `homebrew-mycask` は作っておく。..別に後でもいいですけど。 % : cask ディレクトリ % mkdir -p $HOME/homebrew-mycasks/Casks % cd $HOME/homebrew-mycasks/Casks % : cask 作成のための準備 % curl --location --remote-name https://github.com/splhack/macvim/releases/download/20140501/macvim-kaoriya-20140501.dmg % hdiutil attach macvim-kaoriya-20140501.dmg -noidmereveal % : cask 名 % $(brew --prefix)/Library/Taps/phinze/homebrew-cask/developer/bin/cask_namer MacVim-KaoriYa Proposed Cask name: macvim-kaoriya Proposed file name: macvim-kaoriya.rb First Line of Cask: class MacvimKaoriya < Cask % : sha256 % shasum -a 256 macvim-kaoriya-20140501.dmg f45deb0f7dc399b248ff857b339542d6a3bdfee5a49bbad28ec09ad9b105bebc macvim-kaoriya-20140501.dmg % hdiutil detach -force /Volumes/MacVim-KaoriYa % rm macvim-kaoriya-20140501.dmg % : cask (formula) 作成 % brew cask create macvim-kaoriya % mdfind -onlyin $(brew --prefix) -name macvim-kaoriya.rb % mv /usr/local/Library/Taps/phinze/homebrew-cask/Casks/macvim-kaoriya.rb . % #mytracks.rb を開き、各項目を定義 >>詳細は後述 % : 動作確認 % cd .. % git init % git add . % git commit -m "my new cask macvim-kaoriya" % git remote add origin https://github.com/woowee/homebrew-mycasks.git % git push -u origin master % brew tap woowee/mycasks % brew cask search macvim ==> Exact match macvim ==> Partial matches macvim-kaoriya % brew cask install macvim-kaoriya % : done!
ここではこれを補足する形でメモしていこうと思います。
アプリの有無の確認方法
homebrew-cask インストール済だったら、ターミナルで以下 ;
% brew cask search
コマンドを打てる環境でなければ、
phinze/homebrew-cask の Casks ディレクトリを覗けば良いらしいです。
これ、自分の場合 gimp がそれでして、当初、こちらも独自 cask が必要なアイテムと思っていました。
理由は、ここで入れたい gimp は gimp.org の gimp ではなく、いわゆる Simone 氏バージョンの gimp だったりする*2ので。boxen の経験上、前者はあるだろうけど、後者はないだろうなと、踏んでおりました。
で、何の気なしに確認してみたら。;
% brew cask search gimp gimp gimp-lisanet
ってのがある。
で gimp-lisanet.rb
の中身見みてみたら、どうやら、その Simone さんの gimp を見ているらしい。
と言うことで、cask 自作のアイテムは、mytracks と macvim-kaoriya の 2 つとなりました。
自分専用 homebrew-cask の repo 名は homebrew-<付けたい名前>
こう言うことなのだそうです。;
homebrew-フォーミュラレポジトリ名
というレポジトリ名にして github に作っておくと、brew tap ユーザ名/フォーミュラレポジトリ名
で tap できるようになるっぽい。
今回のケースですと、
上述引用で言うところの "フォーミュラレポジトリ名" が "mycask"。
そして github に作るリポジトリ名は "homebrew-mycask" となります。
ついでに、「へーっ」と思ったのが、;
ちなみにこの tap コマンドは、空のリポジトリに対しても問題なく行える
と言う事は、github に自分専用の homebrew-cask 作ったら、次の手続きでいきなり brew tap
して作業をすすめてもアリってことでしょうかね。
一応。ここではローカルに、こんな構成を用意するところからはじめました。
() 表記は、この時点では存在していなくて、これから作るファイルを表しています。
$HOME/[homebrew-mycask] ┝ [Casks] │ ┝ (macvim-kaoriya.rb) │ └ (myracks.rb) └ (brew-mycask.rb)
ちなみに、たいした話じゃないのですが、自分専用の homebrew-cask の中に作るディレクトリ Casks
は、複数形である事に注意。単数系 Cask とすると認識してくれず動きませんので。*3
そう、躓きました(笑
cask を作る上でちょっと
cask、つまり <アプリ名>.rb
を作るのに、
他の cask を見様見真似で作るのもありですが、念の為、homebrew-cask 側が用意したツールを使うのが良いと思います。
cask を作るまでには、;
- cask_namer で、cask に必要な名称を生成する。
- cask (rb ファイル) を生成する。
- cask のアイテム
sha256
に使う checksum を生成する。
の手続きを踏むことになります。。
cask_namer
cask_namer
については、こちらを参照。;
$ "$(brew --prefix)/Library/Taps/phinze/homebrew-cask/developer/bin/cask_namer" '/full/path/to/new/software.app'
ただ、今回作業対象としている macvim kaoriya は、ちょっと注意が必要です。
事情は、brew cask search macvim
を走らせてみると分かると思います。
macvim kaoriya の app 名で cask_namer
を穫ろうとすると、kaoriya 版ではない既に在る macvim と重複してして、エラーが出ます。
なので今回のケースは、こちらの方法を穫ります。;
$ "$(brew --prefix)/Library/Taps/phinze/homebrew-cask/developer/bin/cask_namer" 'Google Chrome'
で、/full/path/to/new/software.app
のところは "macvim-kaoriya" としました。
おそらくこの名称は任意でもいいかもしれません。
brew cask create
cask rb ファイルの生成については、こちら。;
$ brew cask create my-new-cask
ちょっと引っかかったのは、"my-new-cask" の部分で、
ここにはアプリの名前とか .app
.rb
とかは入れてはならぬようです。
Error: No such file or directory -
な感じのエラーが返ってきます。
"my-new-cask" には、
cask_namer
による Proposed Cask name
を使ってやるみたいです。
そしてこれもあら、っと思ったのですが rb ファイルの生成場所。
これはどうやらデフォですと homebrew-cask の中に作るようです。具体的には、$(brew --prefix)/Library/Taps/phinze-cask/Casks/
かと思います。brew cask create
したらそこを覗いてみるとよろしいかと思います。
shasum -a 256
そして sha256
。こちらについてはこうなるらしいです。;
% shasum -a 256 /path/to/app/downloaded.dmg
.app
でも獲れるかも?
rb ファイルの設定項目
rb ファイルの設定アイテムについての詳細は、こちら。;
» How To Contribute > Adding a Cask > Cask Stanzas
ちょっとつまずいたのが、link
の項目。
これは アプリケーションの app ファイルだけで良いのですね。
macvim-kaoriya だったら MacVim.app
、mytracks だったら 'myTracks.app'。
homebrew-cask はデフォだと $HOME/Applications にインストールしたアプリケーションのシンボリックリンクを用意してくれるのですが、この link
は、そのシンボリックリンクで使う名称になる、と。
最初勘違いして、/Application/MacVim.app
とかなんてやっちゃって、Error: It seems the symlink source is not there: '/Applications/MacVim.app'
って怒られた。
まぁ、ドキュメント読めばわかる話なのですが、つい。
brew tap, brew cask install
rb ファイルの作成が終わったら、テスト。
先ほどの自分専用 homebrew-cask に push して、brew tap に brew cask install。
うまくいったらおしまいです。