クッキー工房

クッキーは焼いたことないです。

brew bundleで構築した環境を再現

今回はbrew bundleを使えば便利って話。

これより下を読みたくない人はbrew bundle dumpって打てば幸せになれるかもしれない。

brew bundleってなに?使い方は?

brewは、みんな知ってるmacOSのパッケージマネージャ。brew installとか、brew updatebrew upgradeとか色々みんなお世話になってると思う。

じゃあbrew bundleって何?っていうと、brewを使って入れたパッケージの一覧を読み込んで、一括でインストールしてくれるヤツ。1つのコマンドで前使っていたパッケージが全部入るのですごく便利。

じゃあそのインストールするパッケージのリストはどうやって出すの?っていうと、brew bundle dump

これを実際に打ってみると、カレントディレクトリにBrewfileっていうファイルが生成される。これをGitHubとかで管理しておいて、新しいPCに移せば、brew bundleと打つだけで前と同じ環境が再現できちゃう。素敵。

環境再現用スクリプトを書いてみよう

ついこないだ僕が所属している研究室で席決めがあって、自分用のiMacが割り当てられることになった。

もちろんクリーンインストールするわけだけど、当然また環境構築が必要。

そこで、色々調べてみるとbrew bundleとやらで一発で再現ができるらしいということがわかって、やる気が出てきて再現用スクリプトを書くことにした。以下は自分が実際に書いたsetup.sh

環境再現用スクリプト

  1. Safariで自分のGitHubにログイン
  2. ZIPでダウンロードしてきて解凍
  3. 解凍したディレクトリをホームディレクトリに移動
  4. ./dotfiles/setup.shを実行

というふうにやる。

しかしsetup.shでdotfilesディレクトリをcloneするのは、この手順だと無駄になってしまう。(ダブるため)

これを本当は解決したかったけど、解決するには直接USBメモリとか経由でsetup.shを移すしかないという結論にいたった。それはダルいので、素直にダウンロードしてきてcloneの部分だけコメントアウトして使うようにしている。まぁコメントアウトせずともソースから削除すればいいんだけど。

他にはbrew caskコマンドも組み合わせて、通常はブラウザから落としてこないといけないChromeとかも一括でインストールするようにした。ちなみに冒頭で紹介したbrew bundle dumpで吐き出されるBrewfileにはbrew cask installでインストールしたアプリとかもリストアップされるので本当に便利。caskのtapも自動で行われる。

.zshrcとか.vimrcとかもついでに管理するようにした。setup.shの最後にシンボリックリンクを貼るようにもしているので、かなり環境の再現がラクになった。

3,4行目

これはMac上の隠しファイルをFinderで表示するための手順。

5~7行目

これはスクリーンショット$HOME/Pictures/screenshotsに保存するための手順。

8行目

brewのインストールに必要なxcodeの一部をインストールするコマンド。

まとめ

brew bundleで環境を再現する手順

  1. 旧PCでbrew bundle dump
  2. 出てきたBrewfileGitHubとかで新PCに移動
  3. 新PCでbrewをインストール
  4. Brewfileがあるディレクトリでbrew bundleを叩く。

おまけ

こういう記事も書きます。趣味や日記だけでなく技術?っぽい記事も書くのでよかったら参考にしてね。