macでbrewを使ってz3.4.12系からz3.4.11系に戻す
はじめに
Kinesis Streamを使ってみようと思い、事前準備であるSDKをインストールしようとした所、エラーとなった。brewでinstallするバッケージで古いものを指定する必要がありそうなのでやり方を調査。
参考にしたサイト
- phpがdyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.68.dylibエラーで動かなくなった ++ Gaji-Laboブログ
- brew tapとは #homebrew - Qiita
-
はじめての自作Homebrew Formula #Mac - Qiita
openssl - Uncommon homebrew error: "Unknown command: switch" - Stack Overflow
ざっくり手順
-
該当パッケージを更新
% brew update && brew reinstall バージョンを指定したいパッケージ
-
パッケージ管理ディレクトリに移動(ここはbrew --prefixにより、人によって異なるっぽい)
% cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
-
該当パッケージの開発履歴を確認
% git log --follow 該当パッケージ
-
該当バージョンにスイッチ
% git checkout スイッチしたいコミットのハッシュ
-
該当パッケージをインストール
% brew reinstall 該当パッケージ
-
該当パッケージのバージョンをスイッチ
% brew switch 該当パッケージ スイッチ後バージョン
-
該当パッケージのバージョンがスイッチ後バージョンになっているか確認
% brew info 該当パッケージ
-
master へ checkout
% git checkout master
わからない言葉たち
-
Formula
Homebrewのパッケージの定義ファイル
インストールしてみた
現状発生するエラー
dyld[30023]: Library not loaded: /Users/user_name/homebrew/opt/z3/lib/libz3.4.11.dylib
存在するライブラリ
libz3.4.12.dylib
ということでz3を3.11系にしてみる。
$ brew update && brew reinstall z3
$ cd $(brew --prefix)/Library/Taps/homebrew/homebrew-core/Formula
$ git log --follow z/z3.rb
$ git checkout 0b3eebfb0cf606bfa42e4f1a01a367794d1718b5
$ brew reinstall z3.rb
Error: Failed to load cask: z3.rb
Cask 'z3' is unreadable: wrong constant name #<Class:0x0000000117e5f9d0>
Warning: Treating z3.rb as a formula.
==> Downloading https://ghcr.io/v2/homebrew/core/z3/manifests/4.11.2_1
################################################################################################################################################################################ 100.0%
==> Fetching z3
==> Downloading https://ghcr.io/v2/homebrew/core/z3/blobs/sha256:cec4d6c863d607ea1622f296d2804942d81234431159e2da7bf446c7bd341365
################################################################################################################################################################################ 100.0%
==> Reinstalling z3
Warning: z3 4.12.2 is available and more recent than version 4.11.2_1.
==> Pouring z3--4.11.2_1.arm64_ventura.bottle.tar.gz
🍺 /Users/user_name/homebrew/Cellar/z3/4.11.2_1: 142 files, 30.3MB
==> Running `brew cleanup z3`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Removing: /Users/user_name/Library/Caches/Homebrew/z3--4.11.2_1... (11.9MB)
Warning: The following dependents of upgraded formulae are outdated but will not
be upgraded because they are not bottled:
gdal
llvm
apache-arrow
==> No outdated dependents to upgrade!
==> Checking for dependents of upgraded formulae...
Disable this behaviour by setting HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> No broken dependents to reinstall!
むむむ・・・
とりあえずスイッチしてみるか
$ brew switch z3 4.11.2
Error: Unknown command: switch
むむむ・・・
openssl - Uncommon homebrew error: "Unknown command: switch" - Stack Overflow
switchは廃止になったけどlinkというのが使えるらしい。
$ brew link z3 4.11.2
Error: No such keg: /Users/user_name/homebrew/Cellar/4.11.2
むむむ・・・
じゃあこうか
$ brew link z3
Warning: Already linked: /Users/user_name/homebrew/Cellar/z3/4.11.2_1
To relink, run:
brew unlink z3 && brew link z3
お、すでにlinkされている?reinstallするだけで良かったのかも?
$ brew info z3
==> z3: stable 4.12.2 (bottled), HEAD
High-performance theorem prover
https://github.com/Z3Prover/z3
/Users/user_name/homebrew/Cellar/z3/4.11.2_1 (142 files, 30.3MB) *
Poured from bottle on 2023-10-19 at 08:48:52
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/z/z3.rb
License: MIT
==> Dependencies
Build: cmake ✔, python@3.11 ✘
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 23,381 (30 days), 55,294 (90 days), 126,146 (365 days)
install-on-request: 488 (30 days), 1,308 (90 days), 4,316 (365 days)
build-error: 600 (30 days)
git checkout master
めでたく更新完了!
Discussion