Macでの開発環境構築をできる限り自動化する。

  • 1250
    いいね
  • 3
    コメント

会社等々で新しいスタッフのために開発環境を作るのを手伝ってあげたりとか、自分で新しいMacを買ってきたりした時とか、調子悪い時に思い切って再セットアップする時とか、毎度毎度同じようなセットアップ作業が続くので、自分用の開発環境と、会社用の開発環境をだいたい作ってくれるシェルスクリプトを作ってみた。

内容は晒せない部分が多いので、何をやったのかという点をだいたい説明してみる。

シェルスクリプトとは

それほどこういうもん使うのに明るくないんですが、コマンドを実行するだけなら別にDOSのbatファイルと大して変わりません。コマンドをテキストで書き連ねるだけです。

.sh
#!/bin/sh
# 以下コマンドを並べる。先頭#はコメントアウト

シェルスクリプトはその名の通りスクリプトなので、スクリプト言語でおおよそ思いつくことはだいたいできるけど、今回やるのはコマンドを書き連ねるだけ。

homebrewとcaskを突っ込む。

.sh
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

homebrewのサイトにあるこいつをまんまコピペ。
これが通ればbrewコマンドが使える。

.sh
brew install caskroom/cask/brew-cask // 今は自動インストールされるので不要

こいつがかなりイケている。SourceTreeだろうがVirtualBoxだろうが、その手のデスクトップアプリケーションをだいたい引っ張ってこれるパッケージマネージャー。naruニキが教えてくれましたが、今は特に個別インストールしなくても自動インストールされます。(正確には、 brew cask ~~ したときに自動インストールするようです。)
ただ、こいつのデフォルトが厄介なのが、~/ApplicationsにAppを配置するので、Launchpadなどで出てこなくなる。うざい。

それをどうにかするために、こうしてみた。

.bashrc
export HOMEBREW_CASK_OPTS="--appdir=/Applications"

~/.bashrcにこの行を書き込んでやれば、brewcaskのSymlinkは全て/Applicationsに作られる。AppStoreとかと同じ挙動。素敵。
OS Xの初期状態に.bashrcはないので、僕は今回あらかじめ設定をまとめたフォルダに.bashrcを作っておいて、コピー&再読み込みさせている。

.sh
cp .bashrc ~/.bashrc
cd ~
source .bashrc

ここまでやったらあとはこっちのもんです。

普段から使うAppをひたすら書き連ねればOK

brew cask install vagrant
brew cask install virtualbox
brew cask install sourcetree
brew cask install visual-studio-code
brew cask install google-chrome
brew cask install sequel-pro

こういう具合に。

Mac App Storeの Appは?

がいたので簡単にできるのだな。

brew install mas

これだけで突っ込める。

ただ、こいつの面倒な点は、インストール時にAppのIDを指定する必要がある点。
そこであらかじめすでに環境を組んであるマシンで以下を叩く。

bash
$ mas list
931657367 Calcbot
449830122 HyperDock
641027709 Color Picker
682658836 GarageBand
425264550 Blackmagic Disk Speed Test
407963104 Pixelmator
497799835 Xcode

と、こういう具合にリストが出力される。

ここまでやればもう簡単で、

mas install 634148309 # Logic Pro X
mas install 425264550 # Blackmagic Disk Speed Test
mas install 407963104 # Pixelmator
mas install 497799835 # Xcode
mas install 424389933 # Final Cut Pro
mas install 944654199 # Tree 2
mas install 557168941 # Tweetbot
mas install 525742250 # JPEGmini Lite
mas install 417602904 # CloudApp

みたいにすればインストールできてしまいます。僕はわかりやすいように右にコメントでApp名を残しておきますた。


こんな感じにしておけば、あとはほとんどほっておくだけで(たまにAppleIDやパスワード聞かれますが)ソフトウェアのインストールがほぼ自動化。
その他Ruby gemやらnpmパッケージも必要に応じてコマンドを書き連ねておけば便利。

毎度環境構築は面倒だったけど、概ねフォントとAppごとのセッティングの復元を除いては望む形にできた。caskはMicrosoftOfficeのような大物すら扱えたりするのでかなりお勧めだし、masのおかげでAppStoreのインストールボタンをひたすら押していくあの苦痛から解放される。

スクリプトが完走する頃には、XcodeもVagrantも、僕の場合さらに言えばOfficeもFinal Cut Pro Xまで入った状態になっている。マジ素敵。

僕のような低級マカーでもできるのでマジオススメ。