由于 liblzma 版本不兼容,ImageMagick 无法启动
ImageMagick unable to start because of incompatible version of liblzma
我正在尝试设置一个服务器来为使用 ImageMagick 和 RMagick gem 的 Ruby 应用程序提供服务。服务器是 运行 OS X 10.10。我有另一台服务器 运行 所有内容(OS、ImageMagick、xz 和 RMagick gem)都按预期工作。
但是,每次我尝试从新服务器提供应用程序时,我都会收到一条错误消息,指出 'Web application could not be started',跟踪如下:
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 版本。
ImageMagick 和 xz 是使用 Homebrew 安装的——根据其他回答的问题,xz 包应该有 liblzma 8.0.0。
我尝试卸载并重新安装 ImageMagick、rmagick gem 和 xz(提供 liblzma 的软件包)无济于事。
如果您需要更多信息,请告诉我。
编辑: 运行 otool
在 /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)
我更懵了。。明明是8.0.0以上的版本。
好的,我明白了。
出于某种原因,ImageMagick、rmagick、and/or passenger 找到了 liblzma 的系统副本。5.dylib 位于 /usr/lib,而不是 /usr/local/lib 处的复制自制程序设置(尽管错误消息说它正在 /usr/local/lib 中查找)。
我通过 运行 两个 liblzma 副本上的 otool 命令解决了这个问题。5.dylib。
对于/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
:
otool -L /usr/lib/liblzma.5.dylib
/usr/lib/liblzma.5.dylib:
/usr/lib/liblzma.5.dylib (compatibility version 6.0.0, current version 6.3.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
系统重启后,ImageMagick/rmagick/passenger 开始使用 liblzma 的正确副本。5.dylib。
我正在尝试设置一个服务器来为使用 ImageMagick 和 RMagick gem 的 Ruby 应用程序提供服务。服务器是 运行 OS X 10.10。我有另一台服务器 运行 所有内容(OS、ImageMagick、xz 和 RMagick gem)都按预期工作。
但是,每次我尝试从新服务器提供应用程序时,我都会收到一条错误消息,指出 'Web application could not be started',跟踪如下:
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 版本。
ImageMagick 和 xz 是使用 Homebrew 安装的——根据其他回答的问题,xz 包应该有 liblzma 8.0.0。
我尝试卸载并重新安装 ImageMagick、rmagick gem 和 xz(提供 liblzma 的软件包)无济于事。
如果您需要更多信息,请告诉我。
编辑: 运行 otool
在 /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)
我更懵了。。明明是8.0.0以上的版本。
好的,我明白了。
出于某种原因,ImageMagick、rmagick、and/or passenger 找到了 liblzma 的系统副本。5.dylib 位于 /usr/lib,而不是 /usr/local/lib 处的复制自制程序设置(尽管错误消息说它正在 /usr/local/lib 中查找)。
我通过 运行 两个 liblzma 副本上的 otool 命令解决了这个问题。5.dylib。
对于/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
:
otool -L /usr/lib/liblzma.5.dylib
/usr/lib/liblzma.5.dylib:
/usr/lib/liblzma.5.dylib (compatibility version 6.0.0, current version 6.3.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
系统重启后,ImageMagick/rmagick/passenger 开始使用 liblzma 的正确副本。5.dylib。