2016-04-27 45 views
1

我試圖設置服務器來爲使用ImageMagick和RMagick gem的Ruby應用程序提供服務。服務器運行的是OS X 10.10。我有另一臺運行相同版本的服務器(操作系統,ImageMagick,xz和RMagick gem),它可以按預期工作。ImageMagick無法啓動,因爲liblzma版本不兼容

然而,每次我嘗試滿足來自新服務器的應用程序,我收到一個錯誤,指出「Web應用程序無法啓動」,具有下列跟蹤:

dlopen(/Users/user/.rvm/gems/[email protected]/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/[email protected]/extensions/x86_64-darwin-14/2.1.0-static/rmagick-2.15.4/RMagick2.bundle (LoadError) 

基本上,它看起來像ImageMagick正在尋找版本8.0.0的liblzma,但只能找到版本6.0.0。

ImageMagick和xz使用自制軟件安裝 - 根據其他回答的問題,xz軟件包應該有liblzma 8.0.0。

我試圖卸載並重新安裝ImageMagick,rmagick寶石和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。

+0

imagemagick能夠在Ruby之外正常工作嗎? – ThomasSevestre

+0

我剛測試過,ImageMagick本身正在工作。我通過命令行將圖像轉換爲更小的尺寸,並且工作得很好。 – tecz

+0

除非你真的需要rmagick,你可以試試mini_magick。它正在使用命令行,所以它應該工作 – ThomasSevestre

回答

1

好吧,我明白了這一點。

出於某種原因,ImageMagick的,rmagick,和/或乘客都在在/ usr/local/lib目錄找到liblzma.5.dylib的系統副本位於/usr/lib目錄,而不是複製安裝自制軟件(儘管該錯誤消息表明它正在/ usr/local/lib中查找)。

我通過在liblzma.5.dylib的兩個副本上運行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) 

對於/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 /乘客開始使用liblzma.5.dylib權副本。

相關問題