Closed26

Mac開発環境整備2022年10月

keitaknkeitakn

新しいMacのスペック

すでにM2のMacbookが発売済だが、現時点でスペックと値段のバランスが取れている、Macbook Pro 14インチ 2021を購入した。(公式の整備済製品なので安く買えたのも良かった)

Macbook Pro 14インチ 2021
CPU: M1 Max
メモリ: 64GB

基本設定

このあたりが参考になる。特に Mac を買ったら必ずやっておきたい初期設定 は記事のメンテナンスが継続的に行われいるようなので、とても参考になる。

自分的にはとりあえず最低限、以下の設定をやっておくのが良いと思う。

ユーザとグループ

  • 右上のメニューにログインウィンドウを表示。

loginWindow

トラックパッド

  • トラックパッドをタップしたらクリックする設定を有効化
  • カーソルの最速化

trackpad

キーボード

  • キーのリピート・リピート入力認識までの時間を最速化
    keyRepeat

Dock

  • Dockを見えないようにする

Dock

Finder

  • 隠しディレクトリの表示
  • 拡張子の表示

showEx

ユーザ辞書

  • 英字入力中にスペルを自動変換のチェックを外す
  • 文頭を自動的に大文字にするのチェックを外す

keyboard

keitaknkeitakn

ファストユーザスイッチの設定はMacOS Ventura からはコントロールセンターに移動になったようだ。

keitaknkeitakn

Homebrew

https://brew.sh/index_ja に従いインストールを実施する。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

特に問題はないのだが今回何故か brew コマンドのパスが通っていない状態になってしまった。

以下はその時に表示されたメッセージ。

==> Checking for `sudo` access (which may request your password)...
Password:
==> This script will install:
/opt/homebrew/bin/brew
/opt/homebrew/share/doc/homebrew
/opt/homebrew/share/man/man1/brew.1
/opt/homebrew/share/zsh/site-functions/_brew
/opt/homebrew/etc/bash_completion.d/brew
/opt/homebrew

Press RETURN/ENTER to continue or any other key to abort:
==> /usr/bin/sudo /usr/sbin/chown -R kogakeita:admin /opt/homebrew
==> Downloading and installing Homebrew...
HEAD is now at faa995022 Merge pull request #14030 from Rylan12/checksum-json-api
Warning: /opt/homebrew/bin is not in your PATH.
  Instructions on how to configure your shell for Homebrew
  can be found in the 'Next steps' section below.
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (nor will any be during this install run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==> Next steps:
- Run these three commands in your terminal to add Homebrew to your PATH:
    echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/kogakeita/.zprofile
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/kogakeita/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

これはエラーメッセージに表示されている通り、以下のコマンドを実施してパスを通すことで解決した。

echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/kogakeita/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/kogakeita/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
keitaknkeitakn

Google Chrome(ブラウザ)

以下のコマンドを実行する。

brew install --cask google-chrome

特に変わった事はない。

keitaknkeitakn

Google日本語入力

以下のコマンドを実行した。

brew install --cask google-japanese-ime

すると下記のエラーが発生した。

Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).

==> Downloading https://dl.google.com/japanese-ime/latest/GoogleJapaneseInput.dmg
######################################################################## 100.0%
Warning: No checksum defined for cask 'google-japanese-ime', skipping verification.
==> Installing Cask google-japanese-ime
==> Running installer for google-japanese-ime; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
Password:
installer: This package requires Rosetta 2 to be installed.
                Please install Rosetta 2 and then try again.
                    `sudo softwareupdate --install-rosetta`

installer: Error - GoogleJapaneseInputはこのコンピュータにインストールできません。
==> Purging files for version latest of Cask google-japanese-ime
Error: Failure while executing; `/usr/bin/sudo -E -- /usr/bin/env LOGNAME=kogakeita USER=kogakeita USERNAME=kogakeita /usr/sbin/installer -pkg /opt/homebrew/Caskroom/google-japanese-ime/latest/GoogleJapaneseInput.pkg -target /` exited with 1. Here's the output:
installer: This package requires Rosetta 2 to be installed.
                Please install Rosetta 2 and then try again.
                    `sudo softwareupdate --install-rosetta`

installer: Error - GoogleJapaneseInputはこのコンピュータにインストールできません。

これはIntel用に作られたアプリケーションをインストール出来ない場合に起こるようだ。

https://support.apple.com/ja-jp/HT211861

インストーラーを利用してGoogle日本語入力を入力したところ、Rosettaのインストールを促されたので、今回はインストーラーを利用する事にした。

keitaknkeitakn

自分は未確認だが以下のコマンドでRosettaをインストールしても問題ないハズ。

softwareupdate --install-rosetta --agree-to-license
keitaknkeitakn

2023年6月2日時点でMacOS Venturaで試したところ Rosetta がなくてもインストールできるようになっていた。

keitaknkeitakn

ターミナル

最近は Warp などの高速で動作する新しいターミナルも出ているが今回は安定している iTerm2 を利用する。

brew install --cask iterm2

設定(個人的には必須)

Preferences.. -> Profiles -> General を開く。
Working Directory の項目で Reuse previous session's directory を選択する。

これで command + T で新しいセッションを開いた時に現在いるディレクトリから新しいセッションを始める事ができる。

iterm2-WorkingDirectory

その他設定

起動時のウインドウサイズ

好みで。自分は4Kモニターを利用しているので少し大きめに設定してます。

iterm2-window

フォント

こちらも好みで。4Kモニターを利用しているので少し大きめに設定してます。

iterm2-font

keitaknkeitakn

zshの設定

自分はGitHubに ~/.zshrc をバックアップしているのでこれを移植した。

aws cliのコマンド補完を行うための aws_completer のパスが /opt/homebrew/bin/aws_completer になっていたのでこの部分は変更する必要があった。

$ which aws_completer
/opt/homebrew/bin/aws_completer

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-completion.html

また zsh-completions の設定も若干変わっていたので以下を参考に修正した。

https://zenn.dev/sprout2000/articles/bd1fac2f3f83bc

keitaknkeitakn

ランチャーアプリ

有名なのは Alfred で以前はこちらを使っていた。

最近評判が良い Raycast を使ってみる事にした。

以下の記事で詳しく解説している方がいたのでとてもありがたい。

https://zenn.dev/yum3/articles/i_raycast_or_alfred

インストールは簡単で以下を実行するだけ。

brew install --cask raycast

デフォルトの起動ショートカットキーは option + スペース なのでAlfredと同じだ。

keitaknkeitakn

Git

以下のファイルを移植する。(自分はGitHubで管理している)

  • .gitconfig
  • .gitignore_global

他にもhooksなどを利用している場合はそれも移植する。

自分は ~/git-hooks/ にいくつかスクリプトがあったのでそれを移植した。

keitaknkeitakn

GUI Git Client(Fork)

GUI用のGitクライアントとして Fork を使っている。

rebaseや部分的にステージングに登録したり等がGUIで出来るので、オススメです。

有料だが買い切りなのでそこまで経済的な負担がないのも良いですね。

https://zenn.dev/doaradev/scraps/7ce93c742947fc

以下を実行してインストールする。

brew install --cask fork
keitaknkeitakn

VSCode

自分はJetBrains製品に課金しているのでメインのエディタはVSCodeではないのだが、リモートでペアプロを行う時に利用する機会が多いので一応環境を整えておく。

以下でインストールを行う。

brew install --cask visual-studio-code

Homebrewで入れるとCILの code コマンドも一緒にインストールしてくれるので、こっちのほうが良さそう。

% code --version
1.72.2
d045a5eda657f4d7b676dedbfa7aab8207f8a075
arm64

あとは拡張機能の一覧を code --list-extensions で出力して、それをテキストなどに保存。

以下のようにコマンドで一括でインストールする。

cat "出力したファイル名" | xargs -n 1 code --install-extension

あとは settings.json をコピーして終了。

先程も書いたが自分はJetBrainsユーザーなのでそこまで凝った設定はVSCodeのほうでは行っていない。

keitaknkeitakn

asdf

メインで利用している言語はTypeScript, Go, Terraform(HCL)なのだが以前まではanyenvを使っていた。

しかし最近開発が止まっているようなので asdf に乗り換える事にした。

以下を参考にセットアップしてみる。

https://asdf-vm.com/guide/getting-started.html#_1-install-dependencies

こちらもHomebrewで入れたほうが依存パッケージをインストールしてくれるので簡単。

brew install asdf

(参考)
https://zenn.dev/cacbahbj/articles/1c7f22260c3e28

keitaknkeitakn

Node.jsの追加

以下でプラグインを追加。

asdf plugin add nodejs

以下でインストール可能なバージョンを確認する。

asdf list all nodejs

16.18.0, 18.11.0 をインストール。

asdf install nodejs 16.18.0
asdf install nodejs 18.11.0

とりあえず asdf global nodejs 18.11.0 でグローバルを 18.11.0 にしてみる。

以下が返ってきたので成功。

node -v
v18.11.0

以下でパスを調べてみたが /Users/ユーザー名/.asdf/shims/node を指しているようだった。

which node
/Users/kogakeita/.asdf/shims/node

ローカルも効くか試してみる。

asdf local nodejs 16.18.0

問題なさそう。

node -v
v16.18.0
keitaknkeitakn

Goの追加

Goでは○○envが不要になった理由(バージョンアップを怠ると損する理由) にもあるようにGoは基本的に後方互換性が維持されているので、複数バージョンを管理する必要性が薄い。

そのため、公式の方法でインストールを行い、下記の記事で紹介されている「ほぼ何もしない」asdf向けGoプラグインを利用する事にした。

https://zenn.dev/yacchi21/articles/dd6d41b50fa1be#fn-158e-1

まずは以下でGoをインストールする。

brew install go

こちら を参考に asdf のプラグイン go-sdk をインストールする。

# プラグインの追加
asdf plugin add go-sdk

# インストール可能なバージョンリストの表示
asdf list-all go-sdk

# 指定したバージョンのインストール
asdf install go-sdk 1.17.13

# インストール済みリストの表示
asdf list go-sdk

# 利用するバージョンの設定
asdf local go-sdk 1.17.13

# デフォルトで利用するバージョンの設定
# [system]でシステムにインストールされた物を利用。おすすめ!
asdf global go-sdk system

ちゃんと機能している事を確認した。

go version
go version go1.17.13 darwin/arm64
keitaknkeitakn

Terraform

以下でプラグインを追加する。

asdf plugin add terraform

以下でインストール可能なバージョンを検索する。

asdf list all terraform

バージョンを指定してインストール。

asdf install terraform 1.3.3

バージョンを指定。

asdf global terraform 1.3.3

ちゃんとインストールされている事を確認出来る。

% terraform --version
Terraform v1.3.3
on darwin_arm64
keitaknkeitakn

WebStorm

以下でインストールを行う。

brew install --cask webstorm

以下は昔自分が書いたGoLandの設定の記事だが、ほぼ同じなので参考にする。

エディタ

  • Remove trailing blank lines at the end of saved files - ON「行末の不要なスペースやタブを保存時に削除する」
  • Ensure every saved file ends with a line break - ON「保存されたファイルの最後が改行で終わるようにする」

Preferences Editor → General → Appearance

  • Show line number - ON「行番号の表示」
  • Show method separators - ON「メソッドの区切り線」
  • Show whitespaces - ON「空白の表示」

目に優しいTheme(Solarized Theme)をインストールする

Solarized Theme をインストールします。

メモリ割当を増やす

せっかくメモリが64GBあるので16GBほどWebStormに当てると動作が高速になるので、そのように設定した。

https://qiita.com/keitakn/items/26946ee021a43a933799

keitaknkeitakn

docker

フロントエンドの開発環境はここまでで整ったがバックエンドがまだなのでこれから構築していく。

以下でDockerをインストールする。

brew install --cask docker

特に書く事はないが、せっかくの64GBなのでメモリ割り当てを増やしておいた。

docker

keitaknkeitakn

GoLand

brew install --cask goland

以下は2020年から更新していない自分の記事だが今でも参考には出来る。

anyenv を使うのをやめて、 asdf-go-sdk を利用しているので、その設定だけが異なる。

GOROOTは /Users/ユーザー名/sdk/go1.17.13, GOPATHは /Users/ユーザー名/go となる。

go env GOROOT
/Users/ユーザー名/sdk/go1.17.13

go env GOPATH
/Users/ユーザー名/go

https://qiita.com/keitakn/items/26946ee021a43a933799

keitaknkeitakn

IntelliJ IDEA

最近はTerraform使う時くらいしか使っていないが一応。

brew install --cask intellij-idea

設定方法に関してはGoLandやWebStormとほぼ同じなので割愛。

keitaknkeitakn

とりあえず開発が出来る状態になったのでこの辺で終了。

10月23日の夜から開始して、25日の夜までかかった。(業務をしながらなのでこれだけやってた訳ではない)

Macの環境構築ゼロからは結構大変だが、各ツールの見直しをするいい機会なので、2年に一度くらいのペースではやりたいかなと思う。(このMacが高かったので、もう少し長く使いたい気持ちもあるが)

何かトラブルがあった場合はこのスクラップに追記するかも。

Mokomoko MokkonMokomoko Mokkon

大変参考になります。ツールを見直す機会になるのと、最新のテクノロジの外観をハンズオンでさっと勉強できる機会にもなりますね。

このスクラップは2023/04/01にクローズされました