rcmdnk's blog

MacBookAir 11 G-skinカーボンテクスチャ 保護ステッカー(Black)

homebrew-file で色々機能を付け加えていってREADME がごちゃごちゃしてしまったので 簡潔化してみました。

Brew-fileのコンセプト

元々やりたかったのは自分で何かをごちゃごちゃ書いたりしなくても、 今使ってる環境の情報をキープしたり他で簡単に使える様にしたい、ということ。

BOXEN とか、最近だとAnsible とか、環境設定を書いておくとその状況をすぐに作れる、と言うものがありますが、 こういうのは最初に書き方を覚えるのが大変です。 YAMLだろうとなんだろうと分からないものは分からない。(単にコマンドを並べるだけなのが一番簡単だとは思いますが。)

それから環境を新しくしたかったら書き直さないといけません。 色々インストールしたりして試す場合には適当な頃合いを見つけて 手動で書きなおす必要があります。

何か開発とかを行ってて特定の環境を共有したり何度も再現しないといけない場合は必要なこともありますが、 個人用Macでは面倒すぎます。 とにかく自分で何か書いたりするのは避けたい所。勝手にやってもらいたい。

そこでHomebrewを使ってインストールとかアンインストールを 普通にしながら勝手に記録を取って共有してくれるものがほしい、 ということで homebrew-file を使っています。

最初はある程度インストールしたりアンインストールしたら自分で initとかしてファイルをアップデートする必要はありましたが、 今はbrew-wrapを使ってbrew install等普通のbrewコマンドを使ってるだけで 勝手にBrewfileがアップデートされる様になっています。

以下、ローカルファイルでそのまま使うのと、 Dropboxとかオンラインストレージで共有する方法、 更にGitHubとかで共有する方法について。

インストールとbrew-wrapの設定

インストールはHomebrewで

$ brew install rcmdnk/file/brew-file

で。

次にオリジナルのbrewコマンドを使った後に 自動でBrewfileをアップデートするようにするため

1
2
3
if [ -f $(brew --prefix)/etc/brew-wrap ];then
  source $(brew --prefix)/etc/brew-wrap
fi

と言う設定を.bashrcなり.zshrcに書いておきます。

ローカルファイルで使う

homebrew-fileではデフォルトでは /usr/local/Library/Brewfile という場所にパッケージリストファイルを作ります。

最初に使う時は、まず今のパッケージを書き出すために

$ brew file init

します。

中を見るためには

$ brew file cat

とすると表示してくれます。

後は普通にbrew install <package>とかbrew uninstall <package>とかすると、 上のbrew-wrapの設定がしてあれば 自動でBrewfileをアップデートします。

もし他のMacで作ってあるBrewファイルがあったり 自分で作ったものがあったりしたら、そのBrewfile/usr/local/Library/Brewfile へコピーして

$ brew file install

すればリストにあるパッケージをインストールしてくれます。

Dropboxとかのオンラインストレージを使う

上の使い方に加えて、自動で他と同期したりするために オンラインストレージを使うことも出来ます。

Brewfileの場所は

export HOMEBREW_BREWFILE=~/Dropbox/Brewfile

とすると指定することが出来ます。

上にもあるように、Brewfileを初めて使う場合には

$ brew file init

これで~/Dropbox/Brewfileが初期化されます。

新しいMacで既にあるBrewfileを使う場合には、 まずDropboxとかで同期して、HOMEBREW_BREWFILEの値を設定して

$ brew file install

すればOK。

後は各Macで普通にbrew installとかしてると共通のBrewfileをアップデートしていきますが、 他でインストールされたものは他でインストールされないので、

$ brew file install

とかする必要があります。 また、他で消したものも同期して消したい場合には

$ brew file update

すると他で削除されたものの削除も同時にしてくれます。

これを毎回やるのは面倒なのでcronジョブとかで

30 12 * * * brew file update

とか設定しておけば毎日お昼に自動でアップデートしてくれます。 (複数のMacでやる場合は同時に触らないように適当に時間をずらして設定してください。)

GitHubとかのGitのレポジトリを使う

GitHubとかでファイルの管理をするとこれまでの履歴とかも簡単に 見れるので便利です。

用意するのはBrewfileというファイル(空でO)を持ったGitのレポジトリ。

もしGitHubを使う場合はhomebrew-fileで直接作ることも出来ます。

$ brew file set_repo

Set repository, "non" for local Brewfile.
<user>/<repo> for GitHub repository,
or full path for the repository: 

set_repoコマンドでレポジトリをセットしますが、 GitHubのレポジトリなら省略してrcmdnk/Brewfileみたいに ユーザー名とレポジトリ名だけでもOK。

もし、レポジトリが存在しない場合、GitHubを指定した時には レポジトリの作成に入ります。

レポジトリを設定したら後は上の方と同じように一番最初は

$ brew file init

後は普通にbrew installとかをしていけばOK。

レポジトリのアップデートをするには

$ brew file update

を行います。 レポジトリがセットされてる場合、updateコマンドは

  • git pull in Brewfile repository
  • brew file install
  • brew file clean
  • brew update && brew upgrade --all
  • brew file init
  • git commmit && git push

を行います。

これも適当にcronジョブとかで

30 12 * * * brew file update

と設定しておけば自動でレポジトリの方へも送ってくれます。

Sponsored Links
Sponsored Links

« stackoverflow.xluat.comとか言う怪しいサイト purifycssで不必要なCSSを探す »

}