2020-11-13 に Apple Store で注文した MacBook Air 16G/256G が 2020-11-29 に届いたのでさっそく設定。
2020-11-20 に生協に注文した Mac mini 16G/256G は 2021-01-12 に届いた。
どちらもメモリ16Gにしたが,通常の用途には8Gで十分かも。SSDは満タンの半分程度で使うつもりで選ぶほうが安心らしいので,据置き用にはHDDをつないでいたが,4TのSSDを2台(Sandisk,Crucial)入手したので,APFSフォーマット(暗号化)してつなぎ,データ用とTime Machine用にした。高速・まったく無音で,快適。
他の Mac からコピーという手もあったが,ここはクリーンセットアップすることにする。Apple ID を設定したら iCloud から多くの設定を拾ってくれたので,たいした手間ではない。セットアップ中に「コンピュータアカウントを作成」でサジェストされるアカウント名(私の場合は okumuraharuhiko だった)は,普段使っているユーザ名(私の場合 okumura)に直す(後でも直せる)。
まずは「システム環境設定」→「ソフトウェアアップデート」でOSをアップデート。「セキュリティとプライバシー」で FileVault(暗号化)をオンにする。ドライブを暗号化しておけば,盗まれても安心だし,廃棄する際にも鍵を捨てるだけで復号不能になる。パフォーマンス低下は無視できるはず。
コンピュータ名が長ったらしいものになったのでシステム環境設定の「共有」で直す。据え置き用は「リモートログイン」を許可しておく(ssh でログインするため)。いずれにしてもパスワードは十分複雑なものにしておく。ちなみにパスワードは大文字小文字数字記号を混在させる必要はない。その分,長くすれば,問題ない。
Finder の環境設定→詳細で「すべてのファイル名拡張子を表示」をオンにする。Safari の環境設定「一般」で「ダウンロード後、“安全な”ファイルを開く」をオフにする。
メールの環境設定で,表示→「メッセージ内のリモートコンテンツを読み込む」をオフに「プライバシー」で「IPアドレスを非公開」「リモートコンテンツをすべてブロック」をオンに,「作成」→「メッセージのフォーマット」を「標準テキスト」に。
システム環境設定でキーボード→ショートカット→入力ソースのショートカットは Emacs に有害なので外す。キーボード→音声入力はデフォルトではControlキーを2回だが,これもControlキーを多用すると間違いやすいので,これ以外(例えばFnを2回)にする。ついでにキーリピートを最速にする(爆速にする方法もある)。
コントロールセンターでキーボードの輝度をゼロに(MacBook Air)。
「システム環境設定」→「ディスプレイ」で正しい解像度が選べない場合は Option キーを押しながら「変更」をクリック(→ Apple M1チップ搭載MacとEIZOモニターの互換性)。
Mac miniには複数のディスプレイをつないでいるが,輝度最小にして明るさが一致しないので,MonitorControl というツールで調節する。
色温度はディスプレイ側で低めに設定する(あるいはMac側で1日中Night Shiftに設定する)。
以上以外に,私は非常に慎重を期すためにいつも自分を管理者から外している。具体的には,システム環境設定の「ユーザとグループ」で自分(奥村)以外に管理者(名前は例えば admin とする)を一人作成し,その管理者(Apple ID には紐付けない)でログインし直して奥村を一般ユーザに格下げする。これで何か重要なことをする際には管理者の名前とパスワードを聞いてくるのでうっかり危ないコマンドを実行する危険性が減る。Unix 的には自分を sudoers から外したことに相当する。コマンドでシステム領域に触れたいときは su admin
してから sudo 何々
する。ただ,macOS はデフォルトでずいぶん安全になったので,今はここまでする必要はないかもしれない。Big Sur から Monterey に更新する際には admin でログインし直す必要があった。
初期の M1 Mac にあった問題(おそらく改善されたはず):
[2021-10-26] macOS Monterey に更新してから起きている問題(未解決):
lsof | grep VDC
で調べても何かのプロセスがカメラを抱えているわけでもなく,sudo killall VDCAssistant
しても直らない。OS 再起動で直る。もう Rosetta を使う機会はほとんどないので以下は不要。
ターミナルを開き,試しに uname -m
と打ち込むと arm64 と表示される。いったんターミナルを閉じて,Finder でターミナルを選択して「情報を見る」で「Rosettaを使用して開く」にチェックを付けると Rosetta がインストールされる(一般には任意の x86_64 なアプリを最初に起動したときに Rosetta がインストールされる。コマンド softwareupdate --install-rosetta
でもインストールできる)。Rosetta で開かれたターミナルに uname -m
と打ち込むと x86_64 と表示される。今度は「Rosettaを使用して開く」をオフにしてターミナルを開き直して uname -m
するとまた arm64 になるが,Rosetta がインストールされたので
arch -x86_64 uname -m
と打ち込むと x86_64 になる(Rosetta がない状態ではこのコマンドは Bad CPU type in executable エラーになる)。このようにちょっとしたコマンドなら arch -x86_64
を冠することにより Rosetta で実行できるが,まとまったことをするには
arch -x86_64 zsh
とすれば Rosetta で zsh が立ち上がる。x86_64 のコードを実行するにはこの状態で行う。.zshrc に alias x86='arch -x86_64 zsh'
のようにエイリアスを作っておけば x86
と入力するだけでこの状態になる。
今まで bash を使っていたが,クリーンセットアップしたので zsh になった。とりあえずプロンプトを見やすくするために ~/.zshrc
に PROMPT='%m:%~%# '
と書き込む。
あるいは Rosetta 状態かどうかをプロンプトに含めてもよい:
ARCH=`uname -m` PROMPT="${ARCH} %m:%~%# "
あるいは場合分けもできる:
ARCH=`uname -m` if [[ $ARCH == 'arm64' ]]; then PROMPT="[a] %m:%~%# " else PROMPT="[x] %m:%~%# " fi
ほかに例えば次のようなオプションを設定しておく:
HISTFILE=~/.zsh_history HISTSIZE=1000 SAVEHIST=1000 setopt HIST_VERIFY setopt INC_APPEND_HISTORY setopt HIST_IGNORE_ALL_DUPS setopt HIST_ALLOW_CLOBBER setopt HIST_REDUCE_BLANKS setopt HIST_IGNORE_SPACE setopt NO_HIST_BEEP setopt NO_CLOBBER
環境変数は ~/.zshenv
で設定するが,NO_GLOBAL_RCS
オプションを指定しないと PATH を上書きされてしまう。
setopt NO_GLOBAL_RCS export PATH=... # bashと同様
PATH は場合分けして設定できる。例えば
setopt NO_GLOBAL_RCS ARCH=`uname -m` PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin PATH=/Library/Frameworks/R.framework/Versions/4.0/Resources/bin:$PATH if [[ $ARCH == 'arm64' ]]; then PATH=/usr/local/texlive/2020/bin/custom:$PATH PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH PATH=/opt/homebrew/Caskroom/miniforge/base/bin:$PATH else PATH=/usr/local/texlive/2020/bin/x86_64-darwin:$PATH PATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:$PATH PATH=/Users/okumura/Library/Python/3.9/bin:$PATH fi export PATH
コマンドラインで開発する場合,巨大な Xcode をインストールする必要はない。コマンドライン用の開発ツールは,何らかの開発用コマンド(gcc とか python3 とか)を実行しようとするとインストールを促される。より確実な方法は,ターミナルに xcode-select --install
と打ち込む。更新は「システム環境設定」→「ソフトウェアアップデート」でできるはずだが、たまにうまくいかないことがあるので、その場合は sudo rm -rf /Library/Developer/CommandLineTools
してから xcode-select --install
する(または https://developer.apple.com/downloads からダウンロードしてインストールする)。OS を更新するとコマンドラインツールも再インストールが必要になることがある。
Homebrew 3.0.0: "Apple Silicon is now officially supported for installations in /opt/homebrew."
wget,gnupg,pinentry-mac,imagemagick,poppler,ffmpeg,graphviz,pandoc など,大部分のものは Apple Silicon 版が用意されるようになった。
ARM 版は,Installation にあるように /opt/homebrew
(ユーザ権限で書き込めるようにしておく)にインストールする:
cd /opt curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
もう不要だが,Rosetta で実行する Intel 版は通常通り Homebrew の最初に書いてあるコマンドを uname -m
が x86_64 なターミナルに打ち込めばインストールできる。
Emacs for Mac OS X にもバイナリがあるが、ここでは自分でビルドする。
wget -N https://ftp.gnu.org/gnu/emacs/emacs-29.4.tar.xz tar xvzf emacs-29.4.tar.xz cd emacs-29.4 ./configure --prefix=/opt/homebrew --without-x make make install
これで nextstep サブディレクトリの中にできる Emacs.app を /Applications にドラッグ&ドロップする。
インラインパッチ版のほうがいいかもしれない。
いろいろ試したが,今は本家のPythonを使っている。
Python 2.7系の /usr/bin/python は消えた。コマンドラインツールをインストールすると入る /usr/bin/python3 は universal binary である:
% file /usr/bin/python3 /usr/bin/python3: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64 - Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e - Mach-O 64-bit executable arm64e] /usr/bin/python3 (for architecture x86_64): Mach-O 64-bit executable x86_64 /usr/bin/python3 (for architecture arm64e): Mach-O 64-bit executable arm64e % /usr/bin/python3 --version Python 3.8.9
本家 python.org の Python は universal バイナリになった。ライブラリも Apple Silicon 対応が進んだ。普通にインストールすればよい。
TensorFlow や PyTorch も今や pip で簡単にインストールできる:
pip3 install tensorflow-macos pip3 install torch torchvision torchaudio
より簡単に最新のPythonを試すにはコンテナがいいかもしれない。Docker 参照。
R 4.1.0 で Apple Silicon に対応した。
TeX Live 2021 からユニバーサルバイナリになった。
インストールにはいくつかの方法があるが,以下はネットワークインストールによる方法を説明する。あらかじめ(例えば)/usr/local/texlive
というディレクトリを作っておき,ユーザ権限で書き込めるようにしておく(私の場合,この中に歴代の TeX Live と,それ以外のものを入れるための texmf-local
ディレクトリがある)。適当な作業ディレクトリで Installing TeX Live over the Internet から install-tl-unx.tar.gz をダウンロードし,
tar xvzf install-tl-unx.tar.gz
とすると install-tl-YYYYMMDD
のような名前のディレクトリにインストーラが展開されるので,その中に入り,./install-tl
で起動する。GUIが嫌なら ./install-tl --no-gui
とする。特定の(近場の)リポジトリを指定したいなら例えば
./install-tl --no-gui --repository http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet/
のような感じで指定する。
以下の実行例は TeX Live 2021 についてである。今は 2022 が最新。
======================> TeX Live installation procedure <===================== ======> Letters/digits in <angle brackets> indicate <======= ======> menu items for actions or customizations <======= = help> https://tug.org/texlive/doc/install-tl.html <======= Detected platform: MacOSX current (10.14-) on ARM/x86_64 <B> set binary platforms: 1 out of 16 <S> set installation scheme: scheme-custom <C> set installation collections: 40 collections out of 41, disk space required: 7143 MB <D> set directories: TEXDIR (the main TeX directory): /usr/local/texlive/2021 TEXMFLOCAL (directory for site-wide local files): /usr/local/texlive/texmf-local TEXMFSYSVAR (directory for variable and automatically generated data): /usr/local/texlive/2021/texmf-var TEXMFSYSCONFIG (directory for local config): /usr/local/texlive/2021/texmf-config TEXMFVAR (personal directory for variable and automatically generated data): ~/Library/texlive/2021/texmf-var TEXMFCONFIG (personal directory for local config): ~/Library/texlive/2021/texmf-config TEXMFHOME (directory for user-specific files): ~/Library/texmf <O> options: [ ] use letter size instead of A4 by default [X] allow execution of restricted list of programs via \write18 [X] create all format files [X] install macro/font doc tree [X] install macro/font source tree [ ] create symlinks to standard directories <V> set up for portable installation Actions: <I> start installation to hard disk <P> save installation profile to 'texlive.profile' and exit <Q> quit Enter command:
ここで I
を入力するとインストールが始まる。あとは気長に待つだけ。上の設定では /usr/local/texlive/2021
以下にインストールされるので,その下の bin/universal-darwin
にPATHを設定する。これで完了。あとはときどき tlmgr update --self --all
と打ち込んでアップデートする。
ちなみに,私は何台もMacを持っているので,一つだけで上記のようにインストール・アップデートし,他のマシンはそこから rsync している:
cd /usr/local/texlive rsync -auvz --exclude='backups/*' メインマシン:/usr/local/texlive/2021 .
VS Code は Universal/Intel/Arm の3通りのバイナリがダウンロードできる。
XQuartz は 2.8.0 beta1 以降で Apple Silicon をサポート。