概要
macOS のバージョンによってはもうアップグレードできない formula が存在します
しかし brew upgrade を実行すると関係なくアップグレードしようとし失敗します
そんな場合に対象の formula は更新対象に含めない方法を紹介します
環境
- macOS 11.7.10
- brew 4.3.3
outdated なパッケージを確認する
- brew outdated
cmake (3.27.7, 3.29.0, 3.29.6) < 3.30.0
imagemagick (7.1.1-20) < 7.1.1-34
libass (0.17.2) < 0.17.3
libheif (1.16.2) < 1.17.6_1
mysql (8.1.0) < 8.3.0_1
node (21.7.1) < 22.4.0
protobuf (24.4) < 27.1
scroll-reverser (1.8.2) != 1.9
この一覧にあるパッケージを upgrade しようとすると outdated にも関わらずビルドを試みます
そして結局エラーになります
cask の場合は以下のようになったりします
- brew upgrade scroll-reverser
Error: scroll-reverser: This software does not run on macOS versions older than Ventura
というエラーになります
バージョンを固定する
- brew pin cmake
とすると brew upgrade を実行しても cmake は最新版にアップグレードえず今のバージョンをそのまま使います
ためしに pin 後に mysql を upgrade しようとすると依存してる cmake のビルドはせずにすぐに mysql のビルドが始まります (結局エラーになります
- brew upgrade mysql
==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
Warning: You are using macOS 11.
We (and Apple) do not provide support for this old version.
It is expected behaviour that some formulae will fail to build in this old version.
It is expected behaviour that Homebrew will be buggy and slow.
Do not create any issues about this on Homebrew's GitHub repositories.
Do not create any issues even if you think this message is unrelated.
Any opened issues will be immediately closed without response.
Do not ask for help from Homebrew or its maintainers on social media.
You may ask for help in Homebrew's discussions but are unlikely to receive a response.
Try to figure out the problem yourself and submit a fix as a pull request.
We will review it but may or may not accept it.
==> Upgrading 1 outdated package:
mysql 8.1.0 -> 8.3.0_1
Error: You must `brew unpin cmake` as installing mysql requires the latest version of pinned dependencies
mysql 8.3 が cmake の 3.30 に依存しているためエラーになっています
pin している formula を確認する
-
brew list --pinned
そもそも formula が現在の macOS のバージョンで動作するか確認する方法
現状は Web サイトで調べるしかないようです
https://formulae.brew.sh/formula/cmake#default
例えば上記の cmake 3.30 は monterey (12.7.5) までしか対応してないのが確認できます
こんな感じで Homebrew のサイトで検索するのが一番です
outdated の一覧にありかつ Web サイト上でサポートされてない macOS のバージョンであれば pin に追加しましょう
最後に
brew upgrade で更新しない formula を指定する方法を紹介しました
macOS 11 はすでに Homebrew からのサポートがないのでこういった対象が必要になってきます
0 件のコメント:
コメントを投稿