由于liblzma版本不兼容,ImageMagick无法启动

时间:2016-04-27 21:31:37

标签: ruby macos imagemagick rmagick xz

我正在尝试设置服务器来提供使用ImageMagick和RMagick gem的Ruby应用程序。服务器正在运行OS X 10.10。我有另一台运行相同版本的服务器(OS,ImageMagick,xz和RMagick gem)的服务器正在按预期工作。

但是,每当我尝试从新服务器提供应用程序时,我都会收到错误消息“无法启动Web应用程序”,并带有以下跟踪:

dlopen(/Users/user/.rvm/gems/ruby-2.1.5@app/extensions/x86_64-darwin-14/2.1.0-static/rmagick-2.15.4/RMagick2.bundle, 9):
   Library not loaded: /usr/local/lib/liblzma.5.dylib
Referenced from: /usr/local/opt/imagemagick/lib/libMagickCore-6.Q16.2.dylib
Reason: Incompatible library version: libMagickCore-6.Q16.2.dylib requires version 8.0.0 or later, but liblzma.5.dylib provides version 6.0.0 - /Users/user/.rvm/gems/ruby-2.1.5@app/extensions/x86_64-darwin-14/2.1.0-static/rmagick-2.15.4/RMagick2.bundle (LoadError)

基本上,看起来ImageMagick正在寻找liblzma的8.0.0版,但只找到版本6.0.0。

使用Homebrew安装ImageMagick和xz - 根据其他回答的问题,xz包应该有liblzma 8.0.0。

我尝试卸载并重新安装ImageMagick,rmagick gem和xz(liblzma所提供的包)无济于事。

如果您需要更多信息,请与我们联系。

编辑:在/usr/local/lib/liblzma.5.dylib上运行otool的输出:

otool -L /usr/local/lib/liblzma.5.dylib
/usr/local/lib/liblzma.5.dylib:
  /usr/local/opt/xz/lib/liblzma.5.dylib (compatibility version 8.0.0, current version 8.2.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

我更加困惑..它显然超过了8.0.0版本。

1 个答案:

答案 0 :(得分:2)

好的,我想出来了。

出于某种原因,ImageMagick,rmagick和/或乘客正在找到位于 / usr / lib 的liblzma.5.dylib的系统副本,而不是中的复制自制程序设置/ usr / local / lib (尽管错误消息说它正在/ usr / local / lib中查找)。

我通过在liblzma.5.dylib的两个副本上运行otool命令来解决这个问题。

if (tries == 0)

/usr/local/lib/liblzma.5.dylib

otool -L /usr/local/lib/liblzma.5.dylib /usr/local/lib/liblzma.5.dylib: /usr/local/opt/xz/lib/liblzma.5.dylib (compatibility version 8.0.0, current version 8.2.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

/usr/lib/liblzma.5.dylib

系统重启后,ImageMagick / rmagick / passenger开始使用liblzma.5.dylib的正确副本。