dyld:库没有加载:/usr/local/lib/libjpeg.8.dylib – homebrew php
由于我遇到这个libpng问题 ,PHP并不适合我,所以我重新安装了一个新版本的Homebrew。
不过,这次我得到了libjpeg类似的错误: 
 $ php -v dyld: Library not loaded: /usr/local/lib/libjpeg.8.dylib Referenced from: /usr/local/bin/php Reason: image not found Trace/BPT trap: 5 
有什么build议么?
正如@ jirson-tavera在homebrew-php回购问题中所提出的那样,可以在不重写brew的情况下修复这个问题 :
 wget -c http://www.ijg.org/files/jpegsrc.v8d.tar.gz tar xzf jpegsrc.v8d.tar.gz cd jpeg-8d ./configure make cp ./.libs/libjpeg.8.dylib /usr/local/opt/jpeg/lib 
尽pipe接受答案中的解决scheme有效,但解决问题的方法并不正确。 它违反了brew的元数据完整性。
问题
 问题是Homebrew的jpeg公式已经升级到v9,但现有的“瓶装”PHP公式仍然与之前的版本v8build立并链接,而这个版本已经不存在于你的系统中。 
你有几个select来解决这个问题。
  1.从源代码重新编译phpxx公式(强烈推荐) 
 卸载你的PHP公式,并从源代码重build,而不是使用瓶装版本。 这样,PHP将使用并链接到当前安装的jpeg版本。 假设你正在处理php71 : 
 brew reinstall php71 --build-from-source 
  2.正确的方式降级jpeg公式(推荐) 
 如果您还没有进行brew cleanup ,您已经在冲泡的酒窖中获得了以前的jpeg版本,请切换至: 
 brew switch jpeg 8d 
 如果你得到一个jpeg does not have a version "8d" in the Cellar. 错误,您需要先恢复它恢复历史logging: 
 cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core git checkout b231469 HOMEBREW_NO_AUTO_UPDATE=1 brew install jpeg git checkout master brew switch jpeg 8d 
 你可以通过使用brew log jpeg并通过提交消息来find提交散列。 
 缺点是可能有其他公式需要更新的版本才能正常工作,例如imagemagick 。 如果遇到这种不兼容问题,请检查上面的第一个解决scheme。 
  3.通过手动重新编译来降级jpeg (不推荐) 
获取源代码,编译并覆盖brew的版本。 有关详细信息,请参阅Denis的答案 。
不推荐这样做,因为它违反了brew元数据的完整性。 Brew认为它有8b版本,但是,您手动编译9b并覆盖了这些文件。
4.手动符号链接旧版本(不推荐)
 不要手动符号链接剩下的libjpeg.8.dylib 。 如果该文件在那里,您可以按照上面的第二个解决scheme中的说明将其brew switch到该文件。 
这只是最糟糕的黑客。
这个问题最终将被修复 。
 今天我遇到了类似的问题。 问题的原因是libjpeg的更新版本。 而解决scheme的工作是从源头上构buildphp瓶。 
 检查libjpeg可用版本: 
 $brew info libjpeg jpeg: stable 9b (bottled) Image manipulation library http://www.ijg.org /usr/local/Cellar/jpeg/9b (20 files, 724KB) * Poured from bottle on 2017-08-07 at 12:06:42 From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/jpeg.rb 
 从源代码安装php : 
 brew install --build-from-source php56 
  更新 : 
 如果你已经安装了php你必须从源代码构build之前卸载它。 它也适用于扩展。 
我有同样的问题,我解决了从这里下载libjpeg tarball manuallu并运行:
 tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b cp /usr/share/libtool/config.sub . cp /usr/share/libtool/config.guess . ./configure --enable-shared --enable-static make sudo make install sudo ranlib /usr/local/lib/libjpeg.a #Optionally 
我没有尝试Jirson的回答,但是对我有效的是:
 brew uninstall libjpeg brew install libjpeg 
 我正在尝试升级composer : 
dyld:库未加载:/usr/local/opt/jpeg/lib/libjpeg.8.dylib
参考:/ usr / local / bin / php
原因:找不到图片
composer php:这个公式需要PHP Phar支持
错误:未满足的需求未能通过此构build。
 问题是php无法findlibjpeg库了。 解决这个问题的一个方法是重新安装php和libjpeg 。 以下是我重新安装它们的方法: 
 # find out which version of php is installed brew list | grep php # uninstall php brew uninstall php70 --ignore-dependencies # uninstall libjpeg brew uninstall libjpeg --ignore-dependencies # install libjpeg again brew install libjpeg # install php again brew install php70 
我当时能够再次升级所有东西:)
 brew update && brew upgrade 
🍻
 我遇到了同样的问题,唯一帮助的是使用--build-from-source参数: 
 brew install php70 --build-from-source 
我分享这个,因为我有使用PHP5.4相同的问题。 最初,我有PHP5.6,它工作正常。 然后我降级到php5.4,因为我的应用程序只支持PHP5.4。
 然后这个错误出现了。 我注意到,我有libjpeg.9.dylib和PHP5.4正在寻找libjpeg.8.dylib 。 
按照以下步骤sorting问题:
 brew uninstall php54 brew install --build-from-source php54 
Homebrew的PHP已经更新,不再是libjpeg的问题
 正如@lifecom所指出的,这是用自制的php70更新修复的,但是如果brew upgrade在升级php70之前尝试更新其他软件包的话,你可能会遇到这个问题。 
 通过手动更新php70首先用brew upgrade php70来解决这个问题,然后你应该可以运行brew upgrade没问题(或者至less在没有这个问题的情况下)。 
我也有这个问题。 我解决这个问题:卸载jpeg / 8b:
 brew uninstall --ignore-dependencies libjpeg 
卸载jpeg / 9b:
 brew uninstall --ignore-dependencies jpeg 
  
 
重新安装jpeg / 9b
 brew install jpeg 
 