こんにちは、せいや(@knkSeiya)です。
PHPのコード整形にphp-cs-fixerを使っています。
最近新しく環境構築したのですが、Library not loaded: libtidy.5.dylibという馴染みないエラーが出てちょっと躓きました。
今回は、php-cs-fixerで発生したエラーとその解決策についての備忘録です。
タップできる目次
php-cs-fixerで発生した問題
php-cs-fixerを実行したとき、以下のエラーが発生してしまいました。
% php-cs-fixer
dyld: Library not loaded: /opt/homebrew/opt/tidy-html5/lib/libtidy.5.dylib
Referenced from: /opt/homebrew/opt/php@7.2/bin/php
Reason: image not found
zsh: abort php-cs-fixer
dyld: Library not loaded: /opt/homebrew/opt/tidy-html5/lib/libtidy.5.dylib・・・????( ^ω^ )
僕なにか悪いことしましたか・・・?いやしてない(反語)
心当たりはないですが、どうやらlibtidy.5.dylibが見つからないらしいです。
解決方法
ひとまず、問題の発生しているライブラリがあるディレクトリがどうなっているのかチェックしてみました。
% cd /opt/homebrew/opt/tidy-html5/lib
% ls -l
total 5872
-rw-r--r-- 1 username admin 889792 10 25 18:11 libtidy.5.8.0.dylib
lrwxr-xr-x 1 root admin 15 10 25 20:28 libtidy.58.dylib -> libtidy.5.dylib
-r--r--r-- 1 username admin 1216816 7 11 05:53 libtidy.a
lrwxr-xr-x 1 username admin 16 7 11 05:53 libtidy.dylib -> libtidy.58.dylib
drwxr-xr-x 3 username admin 96 10 25 18:11 pkgconfig
libtidy.5.dylibのリンクがない?
libtidy.5.dylibのリンクを作ってみました。
% sudo ln -s libtidy.5.8.0.dylib libtidy.5.dylib
% ls -l
total 5872
-rw-r--r-- 1 username admin 889792 10 25 18:11 libtidy.5.8.0.dylib
lrwxr-xr-x 1 root admin 19 10 25 20:29 libtidy.5.dylib -> libtidy.5.8.0.dylib
-r--r--r-- 1 username admin 1216816 7 11 05:53 libtidy.a
lrwxr-xr-x 1 username admin 16 7 11 05:53 libtidy.dylib -> libtidy.58.dylib
drwxr-xr-x 3 username admin 96 10 25 18:11 pkgconfig
エラーは消え、php-cs-fixerが無事動作してくれました。
% php-cs-fixer
PHP CS Fixer 2.11.1 Grey Devil by Fabien Potencier and Dariusz Ruminski
さいごに
無事php-cs-fixerが動くようになってよかった・・・。