gem から RMagick をインストールするときにエラーが発生しました
-
02-07-2019 - |
質問
RMagick gem をインストールしようとすると、ImageMagick ライブラリがインストールされているはずなのに、ImageMagick ライブラリが見つからないというエラーが表示されて失敗します。
gem install rmagick からの関連する出力は次のとおりです。
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagickCore... no
checking for InitializeMagick() in -lMagick++... no
Can't install RMagick 2.6.0. Can't find the ImageMagick library or one of the dependent libraries. Check the mkmf.log file for more detailed information.
*** extconf.rb failed ***
そして、mkmf.log を見ると、次のことがわかります。
have_library: checking for InitializeMagick() in -lMagick... -------------------- no
"/usr/local/bin/gcc -o conftest -I.
-I/usr/local/lib/ruby/1.8/i386-solaris2.10 -I. -I/usr/local/include/ImageMagick -I/usr/local/include/ImageMagick conftest.c -L. - L/usr/local/lib -Wl,-R/usr/local/lib -L/usr/local/lib -L/usr/local/lib -R/usr/local/lib -lfreetype -lz -L/usr/local/lib -L/usr/local/lib -lMagickCore -lruby-static - lMagick -ldl -lcrypt -lm -lc"
ld: fatal: library -lMagick: not found
ld: fatal: File processing errors. No output written to conftest
これは、ImageMagick バージョン 6.4.3 および RMagick バージョン 2.6.0 を搭載した Solaris 10 x86 上にあります。
LDFLAGS に何かを追加する必要がある場合、それが何になるのかはわかりません。ImageMagick をソースからインストールしたので、通常の場所にあるはずです。つまり、
# ls -l /usr/local/lib/ | grep -i magick
drwxr-xr-x 5 root root 512 Sep 24 23:09 ImageMagick-6.4.3/
-rw-r--r-- 1 root root 10808764 Sep 25 02:09 libMagickCore.a
-rwxr-xr-x 1 root root 1440 Sep 25 02:09 libMagickCore.la*
-rw-r--r-- 1 root root 2327072 Sep 25 02:09 libMagickWand.a
-rwxr-xr-x 1 root root 1472 Sep 25 02:09 libMagickWand.la*
ImageMagick-6.4.3/ には興味深いものが何も含まれておらず、gem のインストール先として指定できる可能性のある他のファイルも見つかりません。
アドバイスをいただければ幸いです。グーグルはあまり役に立ちませんでした。
ありがとう -
解決
問題が解決しました。
共有オブジェクトの構築を怠ったため、RMagick は ImageMagick を見つけることができませんでした (元の質問の「ls」からわかるように、.so ファイルがインストールされていませんでした)。解決策は追加することでした --with-shared
私の構成オプションに。
しかし、これは別の問題を引き起こしました。最も注目すべきは、 make
libiconv の「未定義シンボル」メッセージが表示されて失敗します。これは、CFLAGS が libiconv を指すように設定することで解決されました。
export CFLAGS="-liconv"
最終的に、成功したconfigureコマンドは次のとおりです。
./configure --disable-static --with-modules --without-perl --with-quantum-depth=8 --with-bzlib=no --with-libiconv
それとその後、 make
, make install
, 、 そして gem install rmagick
すべてスムーズに動作しました。
ありがとう、
R
他のヒント
OpenSuSE 11.4 でこの問題に遭遇しました。一連のパッケージをインストールした後、libtool が欠落している要素であることが判明しました。
リンカは標準の場所で libMagick を見つけることができません。おそらく、LDFLAGS 経由で指定する必要がある標準以外の場所に ImageMagick をインストールしたのではないでしょうか?