Boxenを使ってMacを設定してみた

最近、新しいMacを手に入れた。しかし、初期設定が面倒くさい。

なので、前から気になっていたBoxenを使って、新しく手に入れたMacや今後手に入れるであろうMacの初期設定を楽にしよう…と思ったら、案外ハマったのでメモる。

Boxenを使うにあたって準備しておくもの

boxen/our-boxen のREADMEより引用。

自分の場合、homebrewとrbenvをインストールして使っていたので、アンインストールする必要が出てしまった。

特にhomebrewはアンインストールが面倒だったので、FAQ · Homebrew/homebrew Wikiを元にやり方を以下に書いていく。

homebrewのアンインストール方法

  1. Uninstall Homebrewをgit clone、もしくはダウンロードする
  2. 実行権限を与えるためchmod u+x uninstall_homebrew.shを実行する
  3. sh ./uninstall_homebrew.shを実行

これでhomebrewはきれいさっぱりアンインストールできると思う。


puppetfile内のバージョン is 何

次にpuppetfileのバージョン番号がよく分からないという問題にぶち当たった。puppetfile内に書くバージョンはBoxen内のpuppet-から始まるリポジトリ内のタグのバージョン番号となる。

最初これが分からなくて、Nodeなんかは3.7.0とか書かれていて、「インストールしたいバージョンを足した合計を書くのか?」とか思った。例えば0.10と0.11をインストールしたいのなら0.21と書くような感じ。

この考え方は、よく考えれば違うと分かるけど、Boxenのpuppet-から始まるリポジトリ内のタグのバージョン番号とは分からなかった。


エラー一覧

Mavericks + Xcode 5.1という組み合わせでJSONのgem installに失敗するときの対処法

いよいよ、./script/boxenを実行して初期設定を始めようとした矢先、JSONのgem installに失敗した。

これは、Ruby Gem install Json fails on Mavericks and Xcode 5.1 - unknown argument: '-multiply_definedsuppress' · Issue #528 · boxen/our-boxenに書かれているように、ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future script/boxenとすることにより、実行されるようになる。

Nginxインストール時にpcreがnot a directoryとなる

Installing pcre from S3...
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
Error: /opt/boxen/homebrew/Cellar/pcre/8.35 is not a directory
Warning: Bottle installation failed: building from source.
Warning: Nothing was installed to /opt/boxen/homebrew/Cellar/pcre/8.35
Error: /opt/boxen/homebrew/Cellar/pcre/8.35 is not a directory

しかし、ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future ./script/boxen --no-fdeというコマンドを実行した時に、上記のようなエラーが出て、インストールが先に進まないというのが発生した。

しかし、Home · fasrc/boxen Wiki によると./script/boxenを実行し直すことによりインストールが出来るらしい。しかし自分の場合、Git周りでエラーが出てしまい、インストールが進まず途中で止まってしまった。

解決方法を再度調べてみたところ、Our-Boxen fails to install · Issue #421 · boxen/our-boxenというissueを見つけた。これによるとbrew install pcreとした後、再度./script/boxenを実行するとのこと。

puppet-module-dataの0.0.3を使うとuninitialized constant Puppet::DataBinding::LookupErrorというエラーが出る

とりあえず0.0.1を使うようにすればエラーは出なくなる。それらしきissueも報告されている

なお、0.0.3だとなぜエラーが出るのかまでは調べていない。

You haven't loaded Boxen's environment yet!

以下のようなメッセージが出る時がある。

--> You haven't loaded Boxen's environment yet! To permanently fix this, source /opt/boxen/env.sh at the end of your shell's startup file.

解決策としては、Boxenを利用したMacのセットアップ | iii ThreeTreesLightにも書かれているように、.zshrcなどを任意のエディタで開き、source /opt/boxen/env.sh としてboxenの環境設定ファイルを読み込むようにする。

完成品

いろいろとハマった結果、できたものは以下のものになる。参考にできそうなところがあれば参考にしてほしい。

kubosho/macbox