macOS 15 beta が beta 3 まで進んでそろそろ public beta という状況になっていたので、macos 14 Sonoma beta で使っている開発マシンを macOS 15 の developper beta チャンネルに切り替えてアップグレードした。ここ数年の傾向ではあるけど、難なくアップグレードは完了して起動できた。
で、目的としては macOS の新しいバージョンは 9-10 月ごろにリリースされて、そこで致命的な何かが見つかると 12 月リリース予定の ruby/ruby
がビルドできないとか、そういうのはユーザー体験としてはよろしくないので事前に動かない箇所などを洗い出して解決しておこうというやつ。
https://bugs.ruby-lang.org/issues/20631
雑にビルドして使うようにしてから見つけたのは上にまとめていくことにした。とりあえず、Process.daemon
とか Process.kill(:SEGV, ...)
などを実行するときに sudo を必要としたり、NOPASSWD で実行しても応答がなくてテストが落ちる、という状態だったのでテストは雑にスキップすることにした。
もう少し beta が進んでからもう一度真面目に調べる。
開発マシンを Sequoia にしたので、アンドパッドから貸与されている方は Ventura から Sonoma にアップグレードした。macOS は基本的にバイナリ互換があるので、上書きアップグレードでほとんどの環境は動くものの darwin22
などが darwin23
になると gem などはバイナリを見つけることができないので動かないので自分が追加したコマンドで rebuild した。
gem pristine --only-missing-extensions
まあ、darwin22 から darwin23 になった、というときは全てのバイナリが見つからないのは自明なので
gem pristine --extensions
でも十分とは思う。これを Sequoia でもやっている最中に oj-introspect などで extconf.rb に独自にリンカコマンドを組み立ている箇所で Xcode 16 では動かないというのも見つけることができて良かった。
次にやることとしては homebrew のバイナリの更新。
brew list -q | xargs reinstall
これも別にバイナリ互換があるので無理してやらなくても動くのだが、ちゃんと target version 向けにビルドしたのを使ったほうが良いだろうということで実行。これも実行している最中に python-cryptography
が cryptography
、1password-beta
が 1password@beta
にリネームしたというのが表示されたので /opt/homebrew/Caskroom/
などの下にある rename 前のバージョンの symlink を削除しておいた。
あと、homebrew/cask-versions
や homebrew/cask-fonts
が cask に統合されて無くなったというのも確認したので brew untap homebrew/cask-versions
などで消しておいた。
次に cargo からいれた lsd などが依存ライブラリが見つからないとエラーで動かなくなっていたので
$ cargo install cargo-update -f
$ cargo install-update -a -f
の2つを実行して全部rebuild、あとなんとなく go についても go-global-update -f
で全部 rebuild しておいた。
ここまでやって、ほぼ macOS のバージョンに応じた適当な環境になった気がする。お疲れ様でした。