アーキテクチャ確認コマンド

uname

/usr/bin/uname -p
  • Intel の場合は i386 or x86_64 が返る
  • Apple Silicon の場合は arm が返る

arch

/usr/bin/arch
  • Intel の場合は i386 が返る
  • Apple Silicon の場合は arm64 が返る

どちらのコマンドを使ってもよい.

アーキテクチャを確認できて何が嬉しいか

前提

  • Mac が Jamf Pro で管理されている
  • Intel と Apple Silicon の Mac が混在している
    • アーキテクチャが異なると必要なソフトウェアも異なる
  • Jamf Pro 管理下の Mac には管理者が任意のスクリプトを実行する
    • 任意のスクリプトを実行することで設定の自動化やソフトウェアの自動インストールを行う
    • アーキテクチャを判別できなければ適切な処理を行えない

アーキテクチャに応じて自動で適切な処理を実行できる

ソフトウェアによってはアーキテクチャに応じて異なるバイナリが提供されている.以下に Chrome のダウンロード URL の例を示す.

アーキテクチャダウンロード URL
Intelhttps://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
Apple Siliconhttps://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg

以下のようにアーキテクチャで条件分岐することで,ユーザに意識させることなく自動的に適切なバイナリをインストールできるようになる.

# アーキテクチャ確認
chip=`/usr/bin/uname -p`

if [ ${chip} = "i386" -o ${chip} = "x86_64" ]; then
  # Intel 用のバイナリをダウンロード
else
  # Apple Silicon 用バイナリをダウンロード
fi

# ダウンロードしたバイナリをインストール

2021 年現在は Mac が Intel から Apple Silicon に移行する過渡期である.こうした状況でなるべく適切なソフトウェア (バイナリ) を提供できるように管理者は時代に合わせて Jamf スクリプトのメンテナンスを行っていく.