rcmdnk's blog
Last update

樽 (ハヤカワ・ミステリ文庫)

Homebrewの拡張機能の一つでアプリをインストールする際に使う Homebrew Caskですが、 実行ファイルの登録方法が変更され、 インストール方法もこれまでと違うものになったので ちょっと注意が必要です。

cmdディレクトリの導入

ちょっと前に Brew-file に関して色々作業してた時に見つけたんですが、 現在、Homebrewではサブコマンドを拡張する際、 2つの方法で拡張することが出来ます。

上に書いてありますが、

  • brew-XXXという名前の実行ファイルをPATHが通ったディレクトリに入れる。
  • cmdという名前のディレクトリを持ったレポジトリを作ってそのディレクトリの中にbrew-XXXを入れレポジトリをTapする。

という方法があります。

前者の方法だと、このコマンドが入ったレポジトリなりアーカイブ等を作り、 そのFormulaを自分で公開するなりHomebrewに入れてもらって brew installでインストールする必要があります。 この場合、コマンドを更新するには、brew updateでFormulaをアップデートしてもらい、 さらにbrew upgradeでコマンドをアップデートしてもらう必要があります。

後者は比較的新しいもので、メリットとしてはTapでチェックアウトした ディレクトリにあるファイルを直接使うので、 brew updateを行っただけでコマンドが更新されます。 デメリットとしてはFormulaを使わないので バージョン指定や細かいインストールオプション等を付ける事は出来ません。 また、masterレポジトリとかで直接開発してると最新版が常に 配布されてしまうので、場合によっては開発版をきちんと別ブランチで作る必要があります。

ですので、普通のソフトウェアに関してはFormulaを使いますが、 Homebrewの拡張をする、と言う際には、 通常Homebrewのアップデート(brew update)に伴い一緒にアップデートされる方が 嬉しいのでHomebrew側としても拡張コマンドに関しては cmdの方法を作ることを勧めています。

で、Homebrew-Caskも以前はFormulaを使っていましたが、 先週くらいにアップデートがあってcmdを使う方法に変更したみたいです。

brew-cask: move to using tap cmd directory. by mikemcquaid · Pull Request #15381 · caskroom/homebrew-cask

アップデートに必要なこと

このアップデートによって、レポジトリにあるFormulaも 一応まだ残ってますが何もインストールしないで 注意だけ出すように変更されています。

homebrew-cask/brew-cask.rb at master · caskroom/homebrew-cask: https://github.com/caskroom/homebrew-cask/blob/master/brew-cask.rb

Tapさえしてあれば動くので、 既にbrew-caskをインストールしてある場合、 brew updateを行っても そのままでも特に問題は無いのですが、 /usr/local/bin/brew-caskがリンク切れで残ってたり (但し、cmdの方を優先するらしくこれ自体は問題は起こさない) 気持ち悪い部分もあるので削除しておく方がベターです。

Homebrew-Caskのページが言って居るように

$ brew uninstall --force brew-cask; brew update

としてあげれば 完全に新しい物に移行して古いものを削除することが出来ます。

今後、新しくHomebrwe-Caskをインストールしたい場合には

$ brew tap caskroom/cask

だけでOKになり、アップデートもbrew updateだけでされるようになります。

ちなみにcaskというFormulaもありますが、こちらは Emacsのプロジェクトマネージメントツールなので 混乱しないように(というかちょっと混乱した)。

Brew-fileでのアップデート

Brew-file の中でもHomebrew-Caskを使って アプリの一覧等を取得していて、 Homebrew-Caskがインストールされてない場合には自動でインストールする機能もついています。

これが古いままで必要ないインストールを行ったり 古い間違ったチェックをしたりしている部分があったので アップデートしました。

Brew-fileもサブコマンドの拡張の一つなので、 これもcmdディレクトリベースにした方が良いのかな、とちょっと考えてます。

変更はファイルを移動させるだけで一瞬なので、 Caskの変更が広まるこのタイミングでやるのがベストなのかも、とも。

追記: 2015/12/18

と思いましたが、今、Brew-fileにはBashやZshでの brewコマンドに対する補完強化機能を入れるためのファイルをインストールしていて これはFormulaを使わないとインストール出来ません。

必須な部分でもないしこの部分だけ別途インストールする様にしても良いのですが、 ちょっと検討中。

追記ここまで

Sponsored Links
Sponsored Links

« ツイートボタンで廃止されたブログのツイート数を表示させる KarabinerのVIM EmulationにInsert modeでのいくつかのキーを追加 »

}