M1 Macが手元に届いたのでセットアップをしたので、今更ながら初期設定に関する記事を書いてみます。
これまでおそらく10回近くMacのインストールを行なっていますが、今回はHomebrewでインストールできるものはなるべくHomebrewを使う、というポリシーを持ってインストールしました。
なぜHomebrew縛りにしたのかについては話が長くなるので、記事の後ろに置きました。
Homebrewをインストール
「ターミナル」を開き、以下のインストールコマンドを実行。
(コマンドは公式ページより2022/02/12現在のもの。変更の可能性があるので最新の情報は公式ページを参照)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストール後に、パス設定を追加します。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/$(whoami)/.zprofile
# すぐにコマンドが使えるように呼び出し
. /Users/$(whoami)/.zprofile
Homebrew Cask
GUIプログラムをインストールするのに使われる Homebrew Cask ですが、最近は brew cask install
コマンドが廃止され、 brew install --cask
コマンドとなりました。
なお、 --cask
は省略することができるので、基本的にGUIアプリケーションかどうかを意識せずにインストールすることができます。以下では基本的にオプションなしで記述しています。
必須アプリ
Google Chrome
brew install google-chrome
Google Meetなどのスクリーン共有機能を使う場合、あらかじめ設定をしておく必要があります。
Macの設定の「Security & Privacy」中の「Screen Recording」から、「Google Chrome」をチェック。いざ会議中に設定しようとしても遅いのであらかじめやっておくのがおすすめです。
Google日本語入力
brew install google-japanese-ime
keyboard設定からことえりを削除して、Google日本語入力の「ひらがな」を追加
設定を有効にするためにOSを再起動
iTerm2
brew install iterm2
他端末からの引っ越しの場合は、Profile設定をjsonでexportし、M1 MacでimportすればOKです。
git
brew install git
コミットログに残るユーザーの情報設定を忘れないようにしましょう。
git config --global user.name "Your Name"
git config --global user.email "your.email@bmail.com"
# 確認
git config --global -l
user.name=Your Name
user.email=your.email@bmail.com
コミュニケーションツール
Slack
brew install slack
Notion
brew install notion
Teams
brew install microsoft-teams
Chrome同様、ビデオ会議中の画面共有を有効にするには、あらかじめ「Security & Privacy」中の「Screen Recording」から、「Microsoft Teams」をチェックしておく必要があります。
いざ会議中に設定しようとしても遅いのであらかじめやっておくのがおすすめです。
開発系 (エディタ)
VSCode
brew install visual-studio-code
PyCharm
brew install pycharm-ce
IntelliJ IDEA
brew install intellij-idea-ce
開発系(その他)
Docker Desktop for Mac
brew install --cask docker
brew install docker
だと、Docker CLIのみがインストールされます。そのため、Docker Desktop for Macを入れるには --cask
オプションが必要です。
terraform
terraform自体のバージョン管理を行うため、tfenvを利用してインストール
brew install tfenv
# 最新バージョンをセット
tfenv install latest
tfenv use latest
AWS CLI
brew install awscli
別マシンから引っ越しの場合は ~/.aws
ディレクトリをまるっとコピーすればそのまま動きます。
Figma
デザイナーさんとの協業には欠かせないツール
brew install figma
Gyazo
Gif動画のスクリーンキャプチャが簡単に取れるツール
brew install gyazo
1Password
個人だけでなく、チームでのパスワード管理にもおすすめのパスワードマネージャー(通称ワンパス)
brew install 1password
そのほか、各開発言語の環境はHomebrewでインストールすることも可能ですが、使っているパッケージマネージャーなどによって変わったり、まだHomebrewで完結しない部分も多いため、ここでは割愛します。
Homebrewを使った背景
Mac引っ越しの際にアプリをインストールする方法は、そのほかにもいくつか考えることができます。
他の候補をなぜ採用しなかったかについて並べてみます。
候補1: 移行アシスタントで丸っとコピーする
Macには「移行アシスタント」というお引っ越し用専用アプリが用意されています。しかし、今回こちらは使いませんでした。
開発時のソースコードや、ダウンロードしたファイルをいろんなところに置くことによって、環境はどんどん汚れていきます。
家の中がどんどん物が増えて汚くなっていくので、数年に一回引っ越しをしてリセットする、という知り合いがいますが、これと同じようにOSを再インストールするたびにソフトウェアのインストールは新しく行うようにしています。
そうした不要なものや、アプリだけではなくデータやbuildによる中間生成物なども一緒にコピーすることになるため、移行アシスタントではデータの転送にかなりの時間がかかるというのも採用しなかった理由のひとつです。
さらに、ご存知のようにM1 MacはARMアーキテクチャであるため、ただファイルのコピーをしただけでは使えないアプリケーションもあるため、基本的にすべてのケースにおいて再インストールしておいたほうが安心というのもありました。
候補2: IaCのように完全にインストール手順を自動化する
先ほどのディスクコピーの対局として、完全にインストールを自動化する設計図を作る、という方法もあります。特にterraformやAnsibleなどでインフラ構成の自動化を行なっている方ほど再現性のある環境構築には馴染みが深いと思います。
しかし、数年に1回というOSインストールでは、バージョンアップによってそもそも昔の設定が使えなくなる恐れがあり、この設定を常に最新に保つためのメンテナンスコストは高くなるため、隅々までの自動化はしないこととしました。
その代わりに、Homebrewではインストールしたアプリを brew leaves
、Caskで入れたアプリは brew list --cask -1
によって書き出すことができます。次回の引っ越し時にはこれを使うことが可能になるというのもポイントでした。
候補3: それぞれのソフトウェアの配布サイトに行ってパッケージをダウンロード
多くのソフトウェアは公式ページにダウンロードボタンが置かれていて、そこからダウンロードできます。
この方法でしか配布していないソフトウェアもあるのでそうしたものは仕方ないのですが、サイトのURLが変わっていたりして、毎回ググらなければいけないしんどさがあるので、この方法は極力避けることとします。
ある程度の再現性を担保しつつ、手間をかけずに必要なソフトウェアだけをインストールする方法として、 "Homebrew" を極力使う運用にすることとしました。