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がバージョン管理されるので便利。
英語で書いたもうちょっと詳しい最新版: