Mac mini M4にHomebrewをインストールするためにXcode Command Line Toolsと画面共有を設定したメモ

Mac mini M4にHomebrewをインストールするためにXcode Command Line Toolsと画面共有を設定したメモ

Mac mini M4を自宅サーバや開発マシンとして使うため、まずHomebrewをインストールすることにしました。

ただ、Homebrewを入れる前にはXcode Command Line Toolsが必要になります。

最初はSSHだけで完結できると思っていましたが、xcode-select --install はGUI操作が必要になるため、ヘッドレス運用のMac miniでは少しハマりました。

今回は、Mac mini M4にHomebrewをインストールするまでの作業ログとして、Xcode Command Line Tools、画面共有、Remote Managementで試したこと、最終的に成功した手順をまとめます。

参考にした記事

Homebrew導入の流れは、以下の記事を参考にしました。

Mac mini M4を買ったら Homebrew を最初にインストールしよう! : 長年のWindows・Linuxユーザーが語るMac mini M4 その2

大きな流れは以下です。

  • Xcode Command Line Toolsをインストールする
  • Homebrewをインストールする
  • HomebrewのPATHを設定する

最初にxcode-select –installを実行する

まず、Mac miniにSSH接続した状態で、以下を実行しました。

xcode-select --install

すると、以下のように表示されました。

xcode-select: note: install requested for command line developer tools

ここで分かったのは、xcode-select --install は完全なCLIインストールではなく、GUI側での操作が必要になるということです。

Mac miniをヘッドレス運用している場合、ここで画面操作が必要になります。

画面をリモートで表示できるようにする

Mac miniに毎回モニターやキーボードをつなぐのは面倒です。

そこで、リモートから画面を操作できないか試しました。

まず、SSHから以下を実行して、画面を起こします。

caffeinate -u -t 1

次に、画面共有サービスを起動しようとしました。

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist

その後、以下のようにVNC接続を試しました。

vnc://macmini

しかし、ターミナル上では以下のようになりました。

zsh: no such file or directory: vnc://macmini

vnc://... はシェルで実行するコマンドではなく、Finderや画面共有アプリ、ブラウザのアドレス欄などから開く形式です。

screensharingdの状態を確認する

画面共有サービスが起動しているか確認しました。

sudo launchctl list | grep screen

結果は以下です。

19668	0	com.apple.screensharing

この状態から分かったことは、以下です。

  • launchctl load 自体は成功している
  • screensharingd は常駐している
  • ただし、接続方法または権限設定で詰まっている可能性がある

そもそも質問の方向がズレていた

ここで一度整理しました。

最初に調べていたのは「リモートログインする方法」でした。

しかし、本当にやりたかったのは「Xcode Command Line Toolsをインストールする方法」です。

xcode-select --install はGUIインストーラや管理者認証が絡むため、単にSSHや画面共有プロセスを起動するだけでは不安定になる可能性があります。

launchctlによる画面共有だけでは不安定

launchctl で画面共有を起動した場合でも、条件がそろえば xcode-select --install を進められることがあります。

ただし、再現性は低く、初期構築ではあまりおすすめできません。

状況 可否
すでにユーザーがログインしている できることが多い
ログイン前の画面 難しい
GUIの承認ダイアログが出る 見えない、または操作できないことがある
サーバ初期構築 非推奨

これはセキュリティでブロックされるというより、GUIセッションの扱いで詰まりやすい問題です。

xcode-select –installの正体

xcode-select --install は、単なるCLIコマンドのように見えます。

しかし実際には、以下のような処理が絡みます。

  • GUIインストーラの起動
  • 管理者認証ダイアログ
  • 利用規約への同意
  • Apple Software Updateとの連携

そのため、完全なSSHだけで完結しない場面があります。

Remote Managementも試した

より確実にコンソール画面へ接続できるように、Remote Managementも試しました。

以下のコマンドでARDAgentを有効化しました。

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate -configure -access -on \
-users snowpool -privs -all -restart -agent

実行結果は以下です。

Starting...
Screen recording might be disabled. Screen Sharing or Remote Management must be enabled from System Settings or via MDM.
Screen control might be disabled. Screen Sharing or Remote Management must be enabled from System Settings or via MDM.
Activated Remote Management.
Stopped ARD Agent.
snowpool: Set user remote control privileges.
snowpool: Set user remote access.
Done.

ARDAgent自体は有効化されています。

ただし、macOSの新しいセキュリティ設定により、画面収録や画面操作の許可が未設定であることを示す警告が出ています。

VNCAlwaysStartOnConsoleを有効化する

次に、VNC接続が常に物理コンソールに結びつくように設定しました。

sudo defaults write /Library/Preferences/com.apple.RemoteManagement \
VNCAlwaysStartOnConsole -bool true

設定を確認します。

sudo defaults read /Library/Preferences/com.apple.RemoteManagement VNCAlwaysStartOnConsole

結果は以下です。

1

1true を意味します。

つまり、VNC接続を常にコンソール画面に結び付ける設定です。

  • 物理画面と同じ画面に接続する
  • ログイン前や再起動直後でも画面共有しやすくなる
  • ヘッドレス運用でもログイン画面を扱いやすくなる

Remote Managementのkickstartで詰まる

しかし、この状態でもまだ接続できませんでした。

状態としては、ARDAgentは有効になっているものの、macOS側の共有サービスのスイッチがOFFのままのようでした。

SSH経由でRemote Managementを明示的に起動しようとしました。

sudo launchctl kickstart -k system/com.apple.RemoteManagement

結果は以下です。

Password:
Could not find service "com.apple.RemoteManagement" in domain for system

この方法ではうまくいかなかったため、Remote Managementまわりの設定は一度戻すことにしました。

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-deactivate -stop

画面共有とリモートマネジメントの違い

ここで、画面共有とリモートマネジメントの違いを整理しました。

機能 主な用途 特徴
画面共有 個人利用・一時的なサポート シンプルで使いやすい。相手の画面をそのまま見て操作する。VNC規格ベース。
リモートマネジメント 組織・IT管理者向け Apple Remote Desktopと組み合わせて使う高度な管理機能。ソフト配布、レポート作成、コマンド一括実行などに向く。

MacBook AirからMac miniを操作してXcode Command Line Toolsをインストールするだけなら、基本的には画面共有で十分です。

最終的に成功した方法

最終的には、Mac mini側で通常の画面共有を有効化し、MacBook Airから接続する方法にしました。

Mac mini側の設定

Mac mini側で以下を開きます。

Appleメニュー > システム設定 > 一般 > 共有

そこで、以下を有効にします。

画面共有

右側の i アイコンをクリックして、アクセスを許可するユーザーも確認しておきます。

MacBook Air側から接続する

MacBook Air側で「画面共有」アプリを起動します。

そのまま接続しようとしても繋がらなかったため、Mac mini側でAppleアカウントにログインしました。

その後、ネットワークからMac miniを選択し、ユーザー名とパスワードを入力すると、簡単に接続できました。

今回の場合、下手にVNCやRemote Managementを試すより、通常の画面共有を有効化した方が早かったです。

Xcode Command Line Toolsをインストールする

画面共有でMac miniを操作できるようになったら、ターミナルで以下を実行します。

xcode-select --install

今回は途中でキーボードを接続する機会があったため、そのタイミングでGUI操作を行い、Xcode Command Line Toolsをインストールしました。

ヘッドレス運用でも、初期構築時だけはモニター・キーボード・マウスを接続した方が早い場合があります。

ディスプレイをオフにしておく

作業後、SSH接続から以下を実行して、Mac miniの画面をオフにしておきました。

pmset displaysleepnow

その後、画面共有で再度接続して操作すると、画面オフは解除されました。

Homebrewをインストールする

Xcode Command Line Toolsのインストール後、Homebrewをインストールします。

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

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

インストール後、以下のような案内が表示されました。

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

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

これは、Homebrewのインストール自体は正常に完了しており、次にPATHを通す必要があるという案内です。

HomebrewのPATHを設定する

案内に従って、以下を実行します。

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

これで、現在のシェルと今後のログインシェルで brew コマンドが使えるようになります。

Homebrewのインストール確認

最後に、Homebrewのバージョンを確認します。

brew --version

以下のように表示されました。

Homebrew 5.0.8

これでHomebrewのインストールは完了です。

今回のハマりどころ

xcode-select –installはGUI操作が必要

xcode-select --install はCLIコマンドですが、実際にはGUIインストーラが起動します。

そのため、SSHだけで完全に完結するとは限りません。

画面共有はAppleアカウントログイン後の方が安定した

Mac mini側でAppleアカウントにログインした後、MacBook Airからネットワーク経由でMac miniを選択すると、画面共有で接続できました。

初期設定段階では、この方法が一番簡単でした。

Remote Managementは今回の用途では不要だった

ARDAgentやRemote Managementも試しましたが、Xcode Command Line Toolsを入れるだけなら過剰でした。

個人利用でMacBook AirからMac miniを操作する程度なら、通常の画面共有で十分です。

初期構築ではモニター・キーボード・マウスをつないだ方が早い場合がある

ヘッドレス運用を目指していても、初期構築ではGUI認証やAppleアカウントログインが必要になる場面があります。

特にXcode Command Line Toolsや画面共有の初期設定では、物理キーボードやモニターがある方が結果的に早いことがあります。

今回の結論

Mac mini M4へHomebrewを入れる場合、先にXcode Command Line Toolsを入れる必要があります。

ただし、xcode-select --install はGUI操作が絡むため、完全なSSH作業だけで進めようとするとハマりやすいです。

今回の結論は以下です。

  • Homebrewの前にXcode Command Line Toolsが必要
  • xcode-select --install はGUI操作が必要になる
  • 個人利用ならRemote Managementより画面共有で十分
  • Mac mini側でAppleアカウントログイン後、画面共有が安定した
  • 初期構築時だけはキーボード・マウス・モニターをつないだ方が早い場合がある

最終的には、画面共有または物理キーボード接続でXcode Command Line Toolsを入れ、その後Homebrewを通常通りインストールできました。

まとめ

Mac mini M4を自宅サーバや開発マシンとして使う場合、Homebrewは最初に入れておきたいツールです。

しかし、Homebrewの前提となるXcode Command Line Toolsのインストールでは、GUI操作が必要になるため、ヘッドレス運用では少し注意が必要です。

今回、VNCやRemote Managementも試しましたが、最終的にはmacOS標準の画面共有を使うのが一番シンプルでした。

Homebrewのインストール後は、PATH設定を行い、brew --version でバージョンが表示されれば完了です。

コメント

タイトルとURLをコピーしました