Be an Engineer.

社会人からWEBエンジニアになった人間の備忘録的勉強記録

新しいMacBookPro 14インチが届いたのでセットアップした

私が持っているMacBook Proは2016年に購入したもので、そろそろバッテリーの劣化やディスプレイに黒い筋が見えるなど、5年落ちのノートブックPCっぽく少しばかりお疲れな感じになっていました。そのため次に出るMacBook Proのタイミングで新しいものを購入しようと決めていたところ現地時間2021年10月18日に新しいMacBook Proが発表されて、発表が終わった深夜にそのまま注文をしちゃいました。

配送

注文したのが日本時間で10月19日、で手元に届いたのが10月30日と思っていたよりも早く到着しました。

f:id:shirakiya:20211108152315j:plain
開封の儀。この瞬間好きだなぁ

セットアップ

私は以下のリポジトリmacOS用のセットアップスクリプトを用意していて、READMEの通りに進めていくと開発環境がおおよそ整うというようにしています。これがあることでプライベートで新しいMacを買ったとしても、あるいは職場のMacが新たに支給されたとしても、転職しても、どこでもほぼ同じようにセットアップが進められるのでかなりバリューを発揮してくれています。

github.com

このセットアップスクリプトsetup_mac.sh)の内容としては以下のようなことをします。

  • いつも使っているHomebrewのパッケージをインストールする
  • 自分の dotfilesリポジトリをcloneして必要なsymlinkを貼る
  • Macの設定をいくつか行う
    • ※本当はここをもっと充実させて「システム環境設定」でポチポチしている部分をスクリプト化したい

いつもの通りこれを使って「Apple Siliconチップになってもうまく通ればいいなぁ」と考えていました。

で実際セットアップをしてみて、使っていたHomebrewパッケージから削除したのが↓の差分で消したものでした。

github.com

リストアップすると以下です。

  • mysql@5.6
  • postgresql
  • (cask) java

mysql@5.6

バージョン5.6に限らず、mysql系は完全に対応できていないようです。Homebrewパッケージにおける対応状況は以下のissueにまとめられており参考になります。

github.com

5系でないバージョンだと一部機能が使えないだけで一応使うことはできるようですね。ただ、もう最近はMacのOS上にMySQLを立てるのではなく基本的にDockerコンテナを使ってMySQLを立てることが多く、Homebrewパッケージとしては必要ないと思い削除しました。

なおDockerであれば以下のように --platform オプションを入れることでDockerイメージをpullできます。これで動くのであれば問題ないですね。

$ docker pull --platform linux/amd64  mysql:5.6.51

postgresql

postgresqlはインストールには成功しましたが、mysql@5.6と同様にもうDockerコンテナを使わずにpostgresqlを使うこともないと思ったので、こちらも削除しました。

(cask) java

Java界隈のことはよくわかってないのが正直なところなのですが、もうcaskから java は無くなったようですね。他のディストリビューションを入れれば良いようですが、さしあたってJavaは必要でなかったので削除しました。またJavaが必要になるときになんとかするつもりです。

Homebrewのパスが変わった

一番困ったことというか変化を感じたのが、Homebrewでインストールしたパッケージのパスが変わったことでした。

Intelチップ版では /usr/local/ 以下を使ってインストールされ、コマンドなどは /usr/local/bin/ 以下に入るのでここにpathを通していました(デフォルトで /usr/local/bin/ にpathが通っていたかどうかは忘れました)。しかしApple Silicon版では /opt/homebrew に通す必要があります。

The prefix /opt/homebrew was chosen to allow installations in /opt/homebrew for Apple Silicon and /usr/local for Rosetta 2 to coexist and use bottles.
ref. https://docs.brew.sh/FAQ#why-is-the-default-installation-prefix-opthomebrew-on-apple-silicon

私はIntel版のMacを使うこともあり、使用する端末にはすべて同じ自分のdotfilesリポジトリの内容を使うことにしています。そこでIntel版とApple Silicon版に両対応させるために、以下のようにしてHomebrewのpathを環境によって対応させました。

~/.zprofile

# `HOMEBREW_PREFIX` はApple Silicon版にしか定義されない環境変数なので、存在していればこれを使うようにする。
export HOMEBREW_DIR=${HOMEBREW_PREFIX:-"/usr/local"}

if [[ -d "${HOMEBREW_DIR}/opt/mysql-client/bin" ]]; then
    export PATH="${HOMEBREW_DIR}/opt/mysql-client/bin:$PATH"
fi
...

https://github.com/shirakiya/dotfiles/commit/cf89ad87abcd1b67d1ef658728c45792bfaea320#diff-7dbc031db9c458c7218405b576a9a3e9d1ad47b7092b557d4d3768aca74bfe4eR24

セットアップしてみて

実際のところ開発環境を整えるのは、上記のセットアップスクリプトを叩いて終わりではなく、開発観点では例えば

  • Vimのpluginのインストール
  • iTermのセットアップ(profile作るなど)
  • Visual Studio Codeのセットアップ(各種Extensionをダウンロードするなど)

が必要でしたが、さして問題は発生しませんでした。こうしてみるとHomebrewのpath周りが大きく変わったところでしたが逆に大きくハマったところはなく、もうちょっとハマるポイントあるのかなと思っていましたがわりと肩透かし感がありました。Apple M1が登場してから1年近く経ちちゃんと対応してくれてるのはありがたい限りです。

新しいMacで気になるところ

キーボードの打鍵感もバラフライキーボードになる前のに似ていて結構好きで、ノッチも個人的には気にならない。バッテリーの持ちはいいしセットアップもハマらずに済みました。お高い買い物でしたが、割と満足しています。

ただ細かいところで一つ気になるのが、私はmacOSのデスクトップ切り替え(あのMission Controlで増やせるアレ)を多用するのですが、「Control+矢印」あるいはトラックパッドのスワイプでの切り替えが前に比べてなんか遅くなったんですよね。スッと動くのですが、隣のデスクトップに移動してから着地(?)というか操作可能になるまでに以前にはないラグがあり、これがとても気になっています。なんとかする方法があれば助かるのですが、どこかのFAQかフォーラムに投稿しますかね。