Macの環境構築を自動化する!
新しいMacでの環境構築で楽したい!
会社に入社したなどで新しくMacのセットアップが必要、他にもMacの中を綺麗にするために、クリーンインストールしたい、今の時期だとbeta版のMacOSをMac内に別のボリュームにインストールしたい、などでMacの環境構築をしたいという場合があると思います。
初めてMacを買った時は一から設定し、色々アプリやツールをインストールすると思いますが、2回目以降は自身が構築したものを一つずつ手動で再設定するのはかなり大変です。
そこであらかじめインストールするアプリやツール、日常的に使用する設定を自動で実行し、省力化できるように、自動化の設定をしておきましょう!
ここでは自分が使っている設定を紹介します。 もし自分でも自動化の設定をしたい場合は、この設定をベースに、自身の環境に合うようにカスタマイズするのがいいと思います!
(だいぶ昔から少しずつ書き足しているので、書き方がわかりにくかったり、正しくなかったり、環境によってはエラーが出る箇所もあるかと思うので、そのような時は適宜修正いただけると!)
Macセットアップ用のレポジトリの設定方法を確認する
先に該当のリポジトリを記載します。
最初の設定は、READMEに書いてある通り、以下の処理を順番に行います。
# ①
sudo curl -fsSL https://raw.githubusercontent.com/u5-03/mac-setup/master/InitSettings/init-download.sh | sh
# ②
cd ./mac-setup
# ③
make setup
①の処理は、上記のリポジトリのinit-download.sh
をダウンロードし、実行してます。
この処理では、(1)Homebrewのインストール、(2)gitのインストール、(3)上記のリポジトリのcloneを実行します。
②の処理ではディレクトを mac-setup
に移動し、③では各種セットアップします。 詳細の処理は、こちらのファイルに記載がありますが、具体的には、以下を行います。 (1)Brewfileに記載のツールやアプリのインストール
(2)個人や仕事のリポジトリ、個人の設定やライセンスファイル、Credentialを含むライブラリのclone、初期設定(このレポジトリでは SettingFiles
という名称で書かれています)
(3)zshの設定
(4)Macのキャプチャの保存先の変更
(5)flutter/node/terminal/rubyなどの各種開発ツールの設定
今回のポイントは(2)でpublicにしたくないリポジトリのcloneや各種設定・ライセンスファイル、私の場合は、 Alfred、 BetterTouchTool、 VSCodeの設定ファイル、 Xcodeのキーバインディングファイル
などを格納しています。
他の方がこのmac-setupをそのまま実行してしまうと、この個人リポジトリのパスワードが求められてしまうので、変更してください!
(1)については、以下のサイトで詳細を確認できます
(3)~(5)に関する詳細の説明は、こちらでは省略します。
気になる方は、実際のコードを見てみてください。
その他の機能
この mac-setup
や SettingFiles
リポジトリには環境構築の自動化以外にも、以下の機能・設定が含まれています。
(1)Gitや各種ツールのAliasや環境変数
terminalで利用するgitや各種ツールのコマンドのaliasを登録しています。
詳細は別途記事にする予定です。
(2)便利関数
毎日使うわけではないけど、たまにやる作業、でもそのたまにをやる時に、めんどくさいなーと感じるような作業などあると思います。
そういったものも、一度処理を書いておけば、2回目以降はその処理を実行するだけでOKです!
例えばこちらで実装している replaceKeybindingFile
関数です。
Xcodeで自身でカスタムのショートカット、例えば自分の場合、VSCodeみたいに Shift + Option + ↓
で該当コードを下にコピーできるようにしていますが、それをXcodeに適用するには、 IDETextKeyBindingSet.plist
というファイルを指定のパスに配置する必要があります。
これはXcodeを新しくダウンロードするたびに実行する必要がありますが、いちいち該当のパスまでFinderでたどって、コピーするのはかなり大変です。
しかしこの関数を使うと、 replaceKeybindingFile 12.5
のように、Xcodeのバージョンを引数に指定するだけで、SettingFilesに格納してあるファイルを指定場所にコピーしてくれます。
なおaliasも用意してあるので、 rkb 12.5
のように書くこともできます。
このような関数も1度定義すれば、後はそれを実行するだけで済むので、楽ちんです!
なおこのリポジトリでは、新しくaliasや環境変数、関数を追加した場合、 sz
(source ~/.zshrc)を実行することで、すぐにTerminalから呼び出すことができます。
Macの環境構築を自動化をしやすくするためには、Mac内のデータを全てクラウドに保存し、どのデバイスからでもダウンロードできるようにしておくのがおすすめです。
私の場合、アプリのプロジェクトなどはもちろん、各種ライセンスファイルなどのファイルもGithubのリポジトリで管理しています。それ以外のデータも基本iClouldやGoogleDriveに保存しています。
Macのローカルにデータがあると、それを個別に新しい環境に移す必要があり、それがかなり手間になります。
もしデザインファイルや動画ファイルなど、容量が大きくて、クラウドにあげることが難しいものがある場合は、外部ストレージなどを活用して、データの移行をしやすくしておくのがいいと思います!
まとめ
今回は私がMacの環境構築の自動化に使っているレポジトリについてまとめました。
最初の構築は大変ですが、その後は該当の処理を呼び出すだけで、簡単に実行することができます。
いきなり全ての処理をまとめることは難しいので、小さく初めて、少しずつ処理を追加していくのがいいかと思います。
エンジニアであれば、めんどうで、同じような処理を行う場合は、共通化したくなると思いますが、こういったMacの環境構築や日常的に行っている作業もスクリプトや設定にまとめておくことで、メインの業務や開発作業がかなり楽になるので、まだ未設定の方はぜひ行ってみましょう!