Homebrewのコマンドを作る方法
の所で書いたとおり、シェルスクリプトでも
Homebrewのコマンド化が簡単に出来る事を知ったので
brewallをallとか言うコマンドにしてみましたが、しっくりこないので
fileに改名してみました。
Homebrew-file
Brewfileを使ってHomebrewのパッケージを管理するコマンド。
インストールは
$ brew tap rcmdnk/file
$ brew install brew-file
で。 以前のbrewallを改名しただけです。
インストールするとbrew fileというコマンドが使えるようになります。
詳しくはbrew file helpで。
brew bundleコマンドの様にBrewfileを使いますが、
特徴として、GitHubなんかにBrewfileを置いて履歴を残せる様にしています。
まず、GitHubで新しいBrewfileというレポジトリを作ります。
その中にBrewfileという名前のファイルを1つ作っておきます。
レポジトリを作ったら
$ brew file set_repo -r rcmdnk/Brewfile
の様にレポジトリをセットします。 この様な省略した形だとGitHubを見に行きますが([email protected]:rcmdnk/Brewfile)、 Bitbucketとかでも
$ brew file set_repo -r [email protected]:rcmdnk/Brewfile
とすればOK。
セットすると
$ brew file edit
でBrewfileを開いて編集出来る様になります。
もし、すでにHomebrewを使っていてパッケージをインストールしている場合、 最初に
$ brew file init
とするとBrewfileを今入れているパッケージで初期化します。
TapされたものやCaskでインストールされたものも全て管理されます。
こんな感じ。
後は、パッケージをインストールした際等に、
$ brew file update
を実行すると、Homebrewのアップデート(update/upgrade)
を行った後にリストを更新して
GitHubの方へもファイルを送って更新します。
この際、GitHubの方で更新があった場合にはそれを取ってきて 新しく追加されてるパッケージがあればそれを追加します。
通常のインストール時にBrewfileも更新したい場合は
$ brew file brew install <package>
と、brew fileコマンドに続いてbrewコマンドを書くことで
上のupdateも同時に行われる様になります。
(オプションとかで常にするようにしても良いかも?もしくはinstall自体をラップする?)
パッケージを削除した際にはBrewfileは更新されないので、
$ brew uninstall <package>
とした際にはbrew file editを実行して該当パッケージの部分を消してください。
消さないと次にbrew file updateをした際にまたインストールされます。
(ここもbrew install時に自動でupdateするのと同様、自動化することがToDo。)
削除するときにちょっと注意が必要ですが、
これで複数のMacを管理している場合にも、
brew file updateするだけで常に同じパッケージをどこでも使える様になります。
1つのMacしかない場合でもBrewfileがバージョン管理されるので便利。
英語で書いたもうちょっと詳しい最新版:
