コマンドラインツールのインストール

ネットワーク環境の設定 - koba::blog に続いて開発環境を構築します。macOS の初期状態では git や各種プログラミング言語はインストールされません。コマンドラインデベロッパツール を別途インストールする必要があります。

コマンドラインデベロッパツールのインストール

ターミナルで git などデベロッパツールのコマンドを実行しようとすると以下のダイアログが表示され、インストールを案内するので、それにしたがいます。

Homebrew のインストール

デベロッパツールに含まれないコマンド*1Homebrew でインストールします。Webページの案内にしたがい、以下のコマンドを実行します。

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

Homebrew はコマンドを /opt/homebrew/bin にインストールする*2ので、環境変数 PATH に反映する必要があります。インストーラが環境にあった方法を示すので、指示に従います。私の場合、以下を実行しました。

$ (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/koba/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"

正しくインストールされたかチェックします。

$ brew doctor
Your system is ready to brew.

Node.js のインストール

Homebrew で Node.js (以下 node)をインストールすると、奇数バージョンがインストールされました。安定版は偶数バージョンなのでそれを使いたいのですが、Homebrewでは最新バージョンのみをサポートするというルールで運営されているらしいです。今までも node のバージョン管理は n というツールで行ってきたので、これからもそうすることにします。

Homebrew で n をインストールします。

$ brew install n

n は /usr/local を使って node をインストールするのですが、Sonoma では操作に制限があります*3。なので、Homebrew が使っている /opt/homebrew を間借りすることにしました*4

環境変数 N_PREFIX に /opt/homebrew を設定します。

$ export N_PREFIX=/opt/homebrew

この設定は .zprofile にもしておきます。

安定版をインストールします。

$ n lts

v20.11.0 がインストールされました。

$ node -v
v20.11.0

sudo 実行時にTouch IDで認証するようにする

sudo を実行するときの認証に Touch ID を使うように設定します。

今までは /etc/pam.d/sudo を書き換えていたのですが、Sonoma では /etc/pam.d/sudo_local に設定するようになっているようです。

sudo_local.template のコメントをはずしたものを sudo_local として保存します。

--- /etc/pam.d/sudo_local.template	2023-12-15 22:43:29
+++ /etc/pam.d/sudo_local	2024-01-12 23:05:19
@@ -1,3 +1,3 @@
 # sudo_local: local config file which survives system update and is included for sudo
 # uncomment following line to enable Touch ID for sudo
-#auth       sufficient     pam_tid.so
+auth       sufficient     pam_tid.so

sudo を実行すると以下のポップアップが出るので、Touch ID で認証しましょう。

外部認証情報の更新

マシンを交換したので、念のため SSH鍵の交換 - koba::blog の手順にしたがい、認証情報を更新しました。ただし、キー生成のアルゴリズムはGitHubの薦めにしたがい以下に変更しました。

$ ssh-keygen -t ed25519

*1:私の場合はrcsとかcvsとか

*2:High Sierra では /usr/local/bin だったので変更されてます

*3:/usr/local 配下の所有者を自分に変更できませんでした

*4:High Sierra では両者共に /usr/local を使用していたので、共存自体は問題ないと思われます