Homebrew-fileでhomebrewでインストールしたパッケージの管理をする

スポンサーリンク

Homebrewでインストールしたパッケージの管理をする  Homebrew-file の使い方です。今はもう使えないbrew bundleの代わりに使ってますがとても便利です。

事前準備

GitHubにBrewfileという名前のリポジトリを作ります。

f:id:tasukujp:20150316113442p:plain

Homebrew-fileのインストール

インストールには次のコマンドを実行します。

$ brew tap rcmdnk/file
$ brew install brew-file
または
$ brew install rcmdnk/file/brew-file   # tapとinstallを同時にしてくれる

brew tapしたリポジトリは以下で確認できます。

$ ls /usr/local/Library/Taps/
caskroom    homebrew    rcmdnk      sanemat

リポジトリの登録

インストールできたら最初に作成したBrewfileのリポジトリを登録します。SSHで接続しますので公開鍵を登録してない方は先に登録して下さい。 GitHubとBitbucketへの公開鍵の登録方法+SSHで複数鍵の使い分け - TASK NOTES

$ brew file set_repo -r tasukujp/Brewfile
$ git clone git@github.com:tasukujp/Brewfile /usr/local/Library/tasukujp_Brewfile
Cloning into '/usr/local/Library/tasukujp_Brewfile'...

登録したリポジトリは/usr/local/Library/Brewfileに保存され、/usr/local/Library/<リポジトリ名>にcloneされます。

$ cat /usr/local/Library/Brewfile
git tasukujp/Brewfile

$ ls -a /usr/local/Library/tasukujp_Brewfile/
.git        Brewfile    README.md

Brewfileを編集する

brew file editでBrewfileの編集ができますが失敗しました。

$ brew file edit
$ git clone git@github.com:tasukujp/Brewfile /usr/local/Library/tasukujp_Brewfile
fatal: destination path '/usr/local/Library/tasukujp_Brewfile' already exists and is not an empty directory.
can't clone git@github.com:tasukujp/Brewfile.
please check the repository, or reset with
$ brew file set_repo

リポジトリが空のままなので先にファイルを作っておかないといけないみたいです。

$ cd /usr/local/Library/tasukujp_Brewfile
$ vi Brewfile   # 空のまま保存する
$ brew file edit

f:id:tasukujp:20150316113518p:plain

これで編集できるようになりましたが、当然まだ空のままなのでBrewfileを今いれているパッケージで初期化してみます。

$ brew file init
You are using Brewfile of git@github.com:tasukujp/Brewfile.
Do you want to overwrite it? [y/n]: y

##########################################################
# Initialize /usr/local/Library/tasukujp_Brewfile/Brewfile
##########################################################

初期化されました。ここからは自由に追加や削除をして編集しましょう。普通のファイルの編集方法でOKです。

f:id:tasukujp:20150316113540p:plain

Brewfileをpush/pullする

編集したBrewfileはbrew file pushでリポジトリに登録する事ができ、逆にbrew file pullでリポジトリから最新のBrewfileを取得することができます。

$ brew file pull
cd /usr/local/Library/tasukujp_Brewfile
$ git pull
From github.com:tasukujp/Brewfile
c853801..5f7997b  master     -> origin/master
Updating c853801..5f7997b
Fast-forward
Brewfile | 55 +++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 39 insertions(+), 16 deletions(-)

パッケージをインストールした際にbrew file updateを実行するとBrewfileを更新してリポジトリにもpushしてくれます。参考までにbrew file updateの処理順は「pull -> install -> brew update/upgrade -> init -> push -> clean -C.」です。

また、パッケージのインストール時にBrewfileの更新も行ないたい場合はbrew file brew install <package>という具合にラップして実行します。

Brewfileを元にパッケージをインストールする

Brewfileを自分で編集した場合はbrew file installを実行することで、Brewfileに書かれてるパッケージをインストールしてくれます。既にインストールされているパッケージがあっても気にしなくて大丈夫です。

Homebrew-caskのアプリケーション確認

brew file casklistを実行するとインストールしてるアプリケーションがHomebrew-caskでインストール可能かどうかを確認できます。

$ brew file casklist
Total: 76 apps have been checked.
Apps in ['/Applications', '/Applications/Utilities', '~/Applications']

Installed by Cask:
/Applications/Utilities : 1
~/Applications          : 1

Installed by Cask (New version is availble, try `brew file cask_upgrade`):
~/Applications          : 2

Installed directly, but casks are available:
/Applications           : 9

Installed from Appstore
/Applications           : 12

No casks
/Applications           : 33
/Applications/Utilities : 18

Installed directly, but casks are availableがHomebrew-caskでインストール可能なアプリケーションになります。brew file casklistを実行したカレントディレクトリにCaskfileが作成されていますのでファイルを開いて確認してください。Caskfileに書かれているアプリケーションを削除してBrewfileに追加したらbrew file installを実行してみましょう。

ついでにInstalled by Caskのメッセージを見るとアップデート可能なアプリケーションがありましたので実行しました。

$ brew file cask_upgrade
$ brew cask install alfred
==> Downloading https://cachefly.alfredapp.com/Alfred_2.6_374.zip
==> Symlinking App 'Alfred 2.app' to '/Users/tasukujp/Applications/Alfred 2.app'
==> Symlinking App 'Alfred Preferences.app' to '/Users/tasukujp/Applications/Alfred Preferences.app'
🍺  alfred staged at '/opt/homebrew-cask/Caskroom/alfred/2.6_374' (284 files, 7.8M)

環境構築時の使い方

新しいPCにBrewfileを元に同じパッケージで環境を構築したい場合は、以下の順番で実行する必要があります。

  1. Homebrewをインストール
  2. Homebrew-fileをインストール
  3. Brewfileのリポジトリを登録
  4. brew file install を実行する

これで環境構築の手間が省けると同時にパッケージの管理も容易になりましたね。

関連記事

 Homebrew-caskでMacのGUIアプリケーション管理 - TASK NOTES

 Homebrew-versionsでcask installしたアプリケーションのバージョンを選択する - TASK NOTES

 Homebrewのインストールと設定 - TASK NOTES

 Homebrewのコマンドと使い方まとめ - TASK NOTES