1

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 しか見つかりません。

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を超えています。

4

1 に答える 1

2

わかりました、私はこれを理解しました。

何らかの理由で、ImageMagick、rmagick、および/またはパッセンジャーは、 /usr/local/libにある自作セットアップのコピーではなく、/usr/libにある liblzma.5.dylib のシステム コピーを見つけていました(それを示すエラー メッセージにもかかわらず)。 /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/passenger は liblzma.5.dylib の正しいコピーを使用し始めました。

于 2016-04-28T21:25:18.800 に答える