已经N次遇到这个问题了...
报错的格式一般是这样的:
可以把报错中的重点拎出来:
报这个错的原因是:路径所指向的文件不对;或者路径下没有这个文件
如果是路径下没有文件还好发现...如果你有重新升级过什么东西,比如我案例中是升级了openssl 但是实际上fpm用的还是老版本...然后我想把老的openssl卸载掉 系统提示说有wget什么一堆依赖这个卸不了才发现乌龙........
改的方式很简单 这里我用 [主要路径] 和 [错误路径] 来带入:
如果MAC提示权限的问题显示not permitted就
sudo install_name_tool -change [错误路径] [更新路径] [主要路径]
这样就改好了
sudo install_name_tool -change /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib /usr/local/opt/openssl@1.1/lib/libssl.dylib /usr/local/sbin/php-fpm
其中 [主要路径]是指我调用的程序的位置 案例中是指phpfpm
[更新路径] 是指我[主要路径]调用的某个依赖的实际位置 案例中是指openssl的实际可用位置
[错误路径] 是指我[主要路径]调用的某个依赖的错误位置 案例中是指 在报错情况下 phpfpm去调用openssl时所使用的位置
如果想要查看[主要路径]的相关路径 可以用这个命令:
otool -L [主要路径]
以下是参考链接:
https://stackoverflow.com/questions/13301786/how-to-fix-libiconv-error-on-mac
如果想知道[更新路径]的位置 可以有两个方法解决:
1 全局搜索文件名
比如php-fpm 找不到libssl.dylib这个文件 就find / -name 'libssl.dylib' 看有没有哪个版本的openssl文件夹下有该文件
2 重新安装openssl 指向新安装包下的文件名