0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita100万記事感謝祭!記事投稿キャンペーン開催のお知らせ

dyld[16017]: Library not loaded: /opt/homebrew/opt/icu4c/lib/libicuio.70.dylib

Last updated at Posted at 2025-01-12

エラー内容

php -v
dyld[28438]: Library not loaded: /opt/homebrew/opt/icu4c/lib/libicuio.70.dylib
  Referenced from: <A6D155AA-AC11-32AD-ADDE-5CD17CC3D936> /opt/homebrew/Cellar/php@8.0/8.0.19/bin/php
  Reason: tried: '/opt/homebrew/opt/icu4c/lib/libicuio.70.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/icu4c/lib/libicuio.70.dylib' (no such file), '/opt/homebrew/opt/icu4c/lib/libicuio.70.dylib' (no such file), '/usr/local/lib/libicuio.70.dylib' (no such file), '/usr/lib/libicuio.70.dylib' (no such file, not in dyld cache), '/opt/homebrew/Cellar/icu4c@76/76.1_1/lib/libicuio.70.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/icu4c@76/76.1_1/lib/libicuio.70.dylib' (no such file), '/opt/homebrew/Cellar/icu4c@76/76.1_1/lib/libicuio.70.dylib' (no such file), '/usr/local/lib/libicuio.70.dylib' (no such file), '/usr/lib/libicuio.70.dylib' (no such file, not in dyld cache)
zsh: abort      php --version

なにやらlibicuio.70.dylibがないといいわれております

ls -la /opt/homebrew/opt/icu4c/lib

で確認したところ76はあるが70はなく、76だと現在使用中のphp8.0と互換性がないらしいです

原因

homebrewをアップデートしたため

参考

ぐぐったらでてきたので下記を参考にさせていただきました

対応

icu4c70のインストール

$ brew tap-new hoge/taps # "hoge"はなんでも可。
$ brew extract icu4c hoge/taps --version 70
$ brew install hoge/taps/icu4c@70
確認
$ ls -la /opt/homebrew/opt/icu4c*
lrwxr-xr-x  1 hoge  admin  23  1 11 23:14 /opt/homebrew/opt/icu4c@70 -> ../Cellar/icu4c@70/70.1

シンボリックリンクを貼る

$ cd /opt/homebrew/opt/icu4c/lib
$ ln -s ../../../icu4c@70/70.1/lib/libicudata.70.dylib libicudata.70.dylib
$ ln -s ../../../icu4c@70/70.1/lib/libicui18n.70.dylib libicui18n.70.dylib
$ ln -s ../../../icu4c@70/70.1/lib/libicuio.70.dylib libicuio.70.dylib
$ ln -s ../../../icu4c@70/70.1/lib/libicutest.70.dylib libicutest.70.dylib
$ ln -s ../../../icu4c@70/70.1/lib/libicutu.70.dylib libicutu.70.dylib
$ ln -s ../../../icu4c@70/70.1/lib/libicuuc.70.dylib libicuuc.70.dylib

これで動作するはずが...

$ php -v
dyld[95646]: Library not loaded: /opt/homebrew/opt/libsodium/lib/libsodium.23.dylib
  Referenced from: <A6D155AA-AC11-32AD-ADDE-5CD17CC3D936> /opt/homebrew/Cellar/php@8.0/8.0.19/bin/php
  Reason: tried: '/opt/homebrew/opt/libsodium/lib/libsodium.23.dylib' (errno=62), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/libsodium/lib/libsodium.23.dylib' (no such file), '/opt/homebrew/opt/libsodium/lib/libsodium.23.dylib' (errno=62), '/usr/local/lib/libsodium.23.dylib' (no such file), '/usr/lib/libsodium.23.dylib' (no such file, not in dyld cache), '/opt/homebrew/Cellar/libsodium/1.0.20/lib/libsodium.23.dylib' (errno=62), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/libsodium/1.0.20/lib/libsodium.23.dylib' (no such file), '/opt/homebrew/Cellar/libsodium/1.0.20/lib/libsodium.23.dylib' (errno=62), '/usr/local/lib/libsodium.23.dylib' (no such file), '/usr/lib/libsodium.23.dylib' (no such file, not in dyld cache)
zsh: abort      php -v

今度はdyld[95646]: Library not loaded: /opt/homebrew/opt/libsodium/lib/libsodium.23.dylib
隙を生じぬ二段構え...

確認
$ ls -la /opt/homebrew/opt/libsodium/lib/

今度はlibsodium26はあるけど23がないという状況

libsodium.23.dylib を手動でダウンロードして設置

libsodium.23.dylib を手動で取得して設置します。
ただし、この方法は非推奨であり、動作保証がありません。

libsodium バージョン 1.0.18 (libsodium.23.dylib が含まれるバージョン) をダウンロード
curl -O https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz
解凍してビルド
tar -xzf libsodium-1.0.18.tar.gz
cd libsodium-1.0.18
./configure
make
sudo make install
手動でシンボリックリンクを作成
sudo ln -sf /usr/local/lib/libsodium.23.dylib /opt/homebrew/opt/libsodium/lib/libsodium.23.dylib

php -vで問題なく動作することを確認して無事終了

所感

脳死でなにかあったら再インストールという精神が働きかけたけどなんとか解決。
今後もhomebrewのアップデートで同じことが起こりうると考えると、各々のライブラリの最新バージョンに対応したphpを使った方が手っ取り早い気がしないでもない...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?