自制程序和 libsodium 出现问题

ptm*_*tmb 15 php homebrew laravel libsodium php-7.4

我的系统(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 
Run Code Online (Sandbox Code Playgroud)

它尝试了几个文件夹,但找不到此版本的 libsodium,但 libsodium.26.dylib 存在。我尝试使用brew来安装libsodium 23:

brew install libsodium@1.0.23
Run Code Online (Sandbox Code Playgroud)

但收到此消息:

Warning: No available formula with the name "libsodium@1.0.23". Did you mean libsodium?
Run Code Online (Sandbox Code Playgroud)

编辑:所以有一个小错误,我认为 libsodium dylib 文件中的数字对应于安装的 libsodium 版本(我认为安装了 1.0.26,因为 dylib 文件被称为 libsodium.26.dylib)

然而事实并非如此,因为 libsodium 的最新版本是 1.0.19。

这解释了为什么“brew install libsodium@1.0.23”不起作用(因为该版本尚不存在)。

在这种情况下,我如何让代客寻找 libsodium.26.dylib,而不是像现在这样的 23?

小智 13

使用brew重新安装libsodium。它应该修复损坏的 php 安装。

跑步: brew reinstall libsodium

  • 我也遇到了 ffmpeg 的问题,“brew reinstall Zeromq”解决了我的问题。编辑:原因是 Zeromq 引用了 libsodium 的版本 23 动态库,但已经安装了版本 26。 (7认同)
  • 我对 ffmpeg 和 libsodium.26.dylib 遇到了同样的问题,但我尝试重新安装 libsodium 和 ffmpeg,但不幸的是,它并没有解决问题。我最终做了一个完整的“酿造升级”,其中的一些东西最终解决了它。 (5认同)

Ano*_*elo 12

就我而言,它发生在运行后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
Run Code Online (Sandbox Code Playgroud)

我设法通过重新安装 PHP 8.2 来修复它:

brew reinstall php
Run Code Online (Sandbox Code Playgroud)

  • 在我的例子中,`brew reinstall shivammathur/php/php@8.4`。 (5认同)