Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

内容は晒せない部分が多いので、何をやったのかという点をだいたい説明してみます。
この記事を投稿した地点ではmac os Yosemiteでしたが、High Sierraの今でも特に変更なく使えているので、OSのアップデートがてらの再インストール時にも有効かと。

シェルスクリプトとは

それほどこういうもん使うのに明るくないんですが、コマンドを実行するだけなら別に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を作っておいて、コピー&再読み込みさせています。特にnodebrewとかを使ってると、自分でパスを通さなくちゃいけないところがあったりするので、その辺を予め作っておくと便利です。

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

あと、.bashrcはMacのbashではデフォルトでロードされないので、以下を同じく~/.bash_profileに書く。

.bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi

これで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まで入った状態になってます。マジ素敵。

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

takustaqu
kirinsan.org チーフ宣教師であり、kirinsan.inc代表取締役。 Web開発からグラフィックデザイン、映像撮影・編集・オーサリングまで。殺し以外はなんでもやるがポリシーの自称デザイナー。アプリ「水素水メーカー」の犯人の1人 フロントエンドエンジニア戦力外通知を受け、食べられる草を探した結果 (株)kirinsan創業。
https://www.kirinsan.co.jp/team/harada-kiyohide/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした