40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

Boxen使ってMountain Lionの環境構築した感想と作業記録

QiitaのBoxen使わなくても許されるのは2012年までだよねを見ながらMountain Lionの環境構築しました。

作業してみた感想を簡単に

上記Qiitaの記事の中で、個人で使うには向かないという記述がありました。理由としては

ただ個人だとそう何度もマシンを一からセットアップする機会がある訳ではない

という感じ

確かに何度もマシンをイチからセットアップすることはないのは事実かと思いますが

  • 一定の期間で開発マシンを買い換えるような時
  • 新しいOSが出てそれを機会にクリーンインストールして環境構築しなおしたい

という状況が出てきて、そういう時にイチイチ

「これまで使っていたアプリって何だっけ??」 「xxのアプリインストール失敗したけど、これ前にハマったなぁ」 「インストールはサクっと出来たけど、init.el とかのドットファイルとか反映しないと」

と細々とした作業が多々出てくることを考えると、”実行可能な作業記録” として保存されたものがあるのは、ありがたいし、まれにやる作業だからこそ、貴重なものかなと思います。

ツールを使いこなす学習コストとの兼ね合いもあるので、使う段階で最低限

  • Unix系OSのオペレーションが出来る(黒画面に抵抗がない)
  • Puppetについての知識(Puppetって何なのかは知ってる程度)

は無いとちょっとツラいのかもしれませんが、まぁこういうツールの存在を知ってる時点でこの辺りは問題ないかもしれませんね。^^;

作業を振り返る

基本的には上記手順通りにやれば出来ると思うのですが作業途中でわからない所が出てきました。 単純に自分の知識不足が原因で理解が進まない所があったので、そのあたりをまとめておこうかと思います。

事前準備

Mountain Lionインストール完了した後に、XCode(含むcommand line tool)をインストールしました。

その後に、Git インストール必要かと思ったのですが

which git

としたら、Gitはインストール済だったので、そのままBoxenを使う作業にとりかかり、boxen/our-boxenのコピーを作成するところも手順通りにやって問題なく作業できました。

設定を書く

上記手順をそのまま読み進めて、Puppetfile、manifests/site.ppはそのままにしました。

個人設定の部分で、package を使いこなすの所を見てると、Macアプリをインストール出来るようで、サンプルとして、Kobitoの設定がありました。

.dmgのものもインストール出来るようで、個人的にEmacs24のバイナリ版をインストールしたかったので、

modules/people/manifests/ディレクトリ以下に、自分のGiHubのアカウント名+拡張子ppという名前、つまり、h5y1m141.ppというファイルを作り

class people::h5y1m141 {

  # homebrewでインストール
  package {
    [
      'tmux',
      'reattach-to-user-namespace',
      'tig',
    ]:
  }
  package {
    'Kobito':
      source   => "http://kobito.qiita.com/download/Kobito_v1.2.0.zip",
      provider => compressed_app;
    'emacs24':
      source =>"http://sourceforge.jp/projects/macemacsjp/downloads/58470/Emacs-24.3-with-inline-patch.dmg",
      provider => pkgdmg;
  }   

  $home     = "/Users/${::luser}"
  $src      = "${home}/src"
  $dotfiles = "${src}/dotfiles"
}   

という内容を記述しました。

Kobitoはインストールできたのですが、本来欲しかったEmacs24が/Applicationsに無いので、インストール出来てないのでこれは書き方間違えたのかなと思ってます。

上記Qiitaの手順にあったプロジェクト設定、チーム設定は一旦パスして、ひとまずインストールを実施しました

Boxenを実行

上記Qiitaの手順ではディスク暗号化する内容になっていましたが、ひとまず暗号化を行わない場合のやり方を採用して

script/boxen --no-fde

としてBoxen実行しました。

script/boxen --no-fde
Need to install Bundler for system ruby, password for sudo: 
Successfully installed bundler-1.3.5
1 gem installed

あとは実行したら、勝手にインストール・・と思ったら途中、以下のようにGitHubのアカウント名とパスワード入力を促されたので、それを入力したら後は勝手に作業進んでいきました

--> Hey, I need your current GitHub credentials to continue.

GitHub login: |hoyamada| h5y1m141
GitHub password: ********

以下のようなログが延々画面に表示されるので、あとは放置してました

Notice: Compiled catalog for hiroshioyamada-no-macbook-air.local in environment production in 1.90 seconds
Notice: /Stage[main]/Boxen::Config/File[/opt/boxen/bin]/ensure: created
Notice: /Stage[main]/Boxen::Config/File[/opt/boxen/data]/ensure: created
Notice: /Stage[main]/Boxen::Config/File[/opt/boxen/data/project-sockets]/ensure: created

インストールが完了した後

インストールが完了したように見えたので試しに

rbenv
-bash: rbenv: command not found

とかしたのですが、brew は見つからないと怒られました。。

何でだろうと思ったのですが、Qiitaの情報を見ると、自分が使ってるShellのPathの設定をしないといけないとのことで、その情報を見る限り、Boxen経由でインストールしたものは/opt/boxen配下になるようで、実際 ls commandで以下のようにしたらきちんとrbenvがありました

ls -al /opt/boxen
total 16
drwxr-xr-x  14 hoyamada  staff  476 10 17 14:29 .
drwxr-xr-x   4 root      wheel  136 10 17 14:36 ..
-rw-r--r--   1 hoyamada  staff   92 10 17 14:21 README.md
drwxr-xr-x   3 hoyamada  staff  102 10 17 14:21 bin
drwxr-xr-x   4 hoyamada  staff  136 10 17 14:31 cache
drwxr-xr-x   6 hoyamada  staff  204 10 17 14:30 config
drwxr-xr-x   5 hoyamada  staff  170 10 17 14:21 data
drwxr-xr-x  10 hoyamada  staff  340 10 17 14:30 env.d
-rwxr-xr-x   1 hoyamada  staff  991 10 17 14:21 env.sh
drwxr-xr-x  16 hoyamada  staff  544 10 17 14:33 homebrew
drwxr-xr-x   4 hoyamada  staff  136 10 17 14:30 log
drwxr-xr-x  10 hoyamada  staff  340 10 17 14:30 nodenv
drwxr-xr-x  14 hoyamada  staff  476 10 17 14:29 rbenv
drwxr-xr-x   3 hoyamada  staff  102 10 17 14:39 repo
HiroshiOyamada-no-MacBook-Air:boxen hoyamada$ ls -al /opt/boxen/repo/
total 0
drwxr-xr-x   3 hoyamada  staff  102 10 17 14:39 .
drwxr-xr-x  14 hoyamada  staff  476 10 17 14:29 ..
drwxr-xr-x  10 hoyamada  staff  340 10 17 14:39 .git

まとめ

自分にとってはBoxen使う上での学習コストはそれほど大きくなく、何よりもコマンド一発である程度環境構築が自動的に行われるのは、空き時間を有効活用出来るので魅力的なツールかなと思います

Titaniumの環境構築、Genymotion・・・と細かいものは手を付けてないですが、作業の流れはこれで理解出来ましたなので、残りのアプリについてもBoxen使って設定しようかと思います