我的系统(macOS)上有几个版本的 php: 7.4、8.0、8.1 和 8.2
我需要针对不同的项目定期在这些之间进行切换。 我遇到了 laravel 的问题,当我尝试在链接 PHP7.4 时运行任何代客命令时,我收到错误消息:
dyld[68591]: Library not loaded: /usr/local/opt/libsodium/lib/libsodium.23.dylib
它尝试了几个文件夹,但找不到这个版本的 libsodium,但是 libsodium.26.dylib 存在。 我尝试使用brew来安装libsodium 23:
brew install [email protected]
但收到此消息:
Warning: No available formula with the name "[email protected]". Did you mean libsodium?
编辑: 所以有一个小错误,我认为libsodium dylib文件中的数字对应于安装的libsodium版本(我认为安装了1.0.26,因为dylib文件被称为libsodium.26.dylib)
但是情况并非如此,因为 libsodium 的最新版本是 1.0.19。
这解释了为什么“brew install lib[email protected]”不起作用(因为该版本尚不存在)。
在这种情况下,我如何让代客寻找 libsodium.26.dylib,而不是像现在这样的 23?
使用brew重新安装libsodium。它应该修复损坏的 php 安装。
运行:
brew reinstall libsodium
就我而言,它发生在运行后
brew upgrade
。我收到的错误(在尝试执行composer install
之后):
dyld[75922]: Library not loaded: /usr/local/opt/libsodium/lib/libsodium.23.dylib
Referenced from: <XXX> /usr/local/Cellar/php/8.2.7_1/bin/php
我设法通过重新安装 PHP 8.2 来修复它:
brew reinstall php