何もしていないのにパソコンが壊れた

2025/05/31

何もしていないのにパソコンが壊れた。

エンジニアにあるまじき発言ではあるが何もしていないのにパソコン (環境) が壊れてしまった。

Nix

PC の環境構築に Nix と呼ばれるパッケージ管理システムを使っている。 Nix を使っていると何が嬉しいのか、はインターネット上に熱い思いを語っている人たちに任せるとして、ここ数週間この Nix によって管理していた環境が壊れてしまった。壊れたというのは語弊があり、正確にはパッケージの更新ができない状態に陥っている。

Nix とは言ったが、macOS を使っているので正確には

の組合せになる。

この環境で sudo darwin-rebuild switch --flake を実行すると数週間前から次のようなエラーが発生するようになった。

Loading code...

この影響でアプリケーションのインストールもアップロードもできなくなってしまった。

原因はエラーメッセージにもあるように現在の環境が arm64-apple-darwin として認識されていることだろう。

これのせいで業務にも支障が出そうだったので調べていたら GitHub で関連する Issue が見つかったのでメモしておく。関連する Issue の様子を見ると解消には時間がかかりそうだ。

システム名称の変更

どうやら事の発端は NixOS/nixpkgs に lib/systems: use Darwin architecture names for config and uname by emilazy · Pull Request #393213 · NixOS/nixpkgs という PR が入ったことのようだ。

これまで ARM 64 ビット macOS (Apple Silicon) は aarch64-apple-darwin という名称で扱われていたがこの PR から arm64-apple-darwin という名称に変更されている。この変更自体も LLVM 20 での変更に対応するための修正であるため、一番悪いのは LLVM。

AArch64 と arm64 という名称の使い分けについて意識していなかったが、LLVM の文脈では LLVM のバックエンドの aarch64 と arm64 の違い - 組み込みの人。 に書かれているように AArch64 は ARM によって作られたもので、ARM64 は Apple が作ったものらしい。この記事では AArch64 の方に統一する動きがあったようだけど、月日が流れてまた別れることになったということなのかな…。

確かに手元で uname -m を実行すると arm64 と表示される。

Loading code...

このあたりの不一致を解消したいのだろうが、この影響でビルドに失敗するパッケージが出ているようだ。

このあたりの PR、Issue の内容を見ると stdenv.hostPlatform.config を使わずにハードコーディングしていたようなパッケージや stdenv.hostPlatform.darwinArch を使っているパッケージがあおりを受けているようだ。

解決方法

調査中。現時点では nixpkgs の対応を待つしかない気がする。

全てのパッケージが使えない状態ということはないはずなので原因となっているパッケージを特定するしかないかもしれない。

おわりに

早く解決してくれー。

SuzumiyaAobaのプロフィール画像

SuzumiyaAoba

プログラミング、技術、その他の話題について共有するブログを書いてます。 主にScala、Java、TypeScriptなどの技術について興味あり。

ScalaJavaTypeScriptReact

Buy Me A Coffee