- 更新日: 2014年1月31日
- Ruby
RMagick で LoadError: libMagickCore-6.Q16.so.2 エラー
昨日の RMagick インストールの続き。いざ RMagick を使おうとしたら、ロードエラーが出ました。
RMagick を レンタルサーバーにインストールするのではまった | EasyRamble
gem require での LoadError: libMagickCore-6.Q16.so.2 エラー
サーバーに SSH でログイン後、irb に入って Bundler.require してみるとエラー。RMagick の require でこけてます。RMagick2.so から呼ばれるはずの libMagickCore-6.Q16.so.2 がオープンできないと。
1 2 3 4 5 6 7 |
$ irb irb(main):001:0> require "bundler" => true irb(main):002:0> Bundler.require LoadError: libMagickCore-6.Q16.so.2: cannot open shared object file: No such file or directory - /home/username/***/RMagick2.so |
irb から一旦出て、libMagickCore-6.Q16.so.2 がどこにあるか探す。
1 2 3 4 5 |
$ find ~/local -name libMagickCore-6.Q16.so.2 /home/username/local/src/ImageMagick-6.8.8-4/magick/.libs/libMagickCore-6.Q16.so.2 /home/username/local/lib/libMagickCore-6.Q16.so.2 |
LD_LIBRARY_PATH 環境変数に libMagickCore-6.Q16.so.2 のパスを設定すると良いとのこと。
1 2 3 4 5 6 7 8 |
$ export LD_LIBRARY_PATH=/home/username/local/lib/ $ irb irb(main):002:0> require "bundler" => true irb(main):003:0> Bundler.require => [<Bundler::Dependency ...] |
できた。~/.bashrc に設定しておきます。
1 2 3 4 |
$ vi ~/.bashrc export LD_LIBRARY_PATH=/home/username/local/lib/ |
no decode delegate for this image format エラー
続いて、RMagick を利用するテスト用のスクリプトを実行したところ、今度は、no decode delegate for this image format エラー。
1 2 3 4 |
$ ./test.rb ... no decode delegate for this image format |
ImageMagick のフォーマットのサポートを確認。
1 2 3 |
$ convert -list format | grep PNG |
なんてことだ。png がサポートされてない…。
libpng を入れた後 ImageMagick をインストールやり直し
png サポートのために libpng を入れます。
1 2 3 4 5 6 7 8 9 |
$ cd ~/local/src/ $ wget http://sourceforge.net/projects/libpng/files/libpng16/1.6.8/libpng-1.6.8.tar.gz/download $ tar xzf libpng-1.6.8.tar.gz $ cd libpng-1.6.8 $ ./configure --prefix=$HOME/local $ make $ make install |
ImageMagick をアンインストールして、インストールをやり直します。CPPFLAGS, LDFLAGS を指定する。これを指定しないと、ImageMagick の configure 時のPNGのオプションが「–with-png=yes no」となり、PNGがサポートされませんでした。
1 2 3 4 5 6 7 8 9 |
$ cd ~/local/src/ImageMagick-6.8.8-4 $ make uninstall $ export CPPFLAGS=-I/home/username/local/include $ export LDFLAGS=-L/home/username/local/lib $ ./configure --prefix=$HOME/local $ make $ make install |
ImageMagick がインストール完了したら、もう一度サポートするフォーマットを確認。
1 2 3 4 5 6 7 8 9 10 11 |
$ convert -list format | grep PNG PNG* rw- Portable Network Graphics (libpng 1.6.8) See http://www.libpng.org/ for details about the PNG format. PNG00* rw- PNG inheriting bit-depth and color-type from original PNG24* rw- opaque or binary transparent 24-bit RGB (zlib 1.2.3) PNG32* rw- opaque or transparent 32-bit RGBA PNG48* rw- opaque or binary transparent 48-bit RGB PNG64* rw- opaque or transparent 64-bit RGBA PNG8* rw- 8-bit indexed with optional binary transparency |
無事に PNG フォーマットをサポートするように ImageMagick をインストールできました。テスト用のスクリプトで試したところ、一応これでコンソールからであれば、RMagick でPNGファイルを作成・操作できるようになりました。CGI スクリプトから利用する場合は、LD_LIBRARY_PATH に値を設定する手段がなく(分からず)断念。root 権限がないと、デフォルトで有効な PATH に libMagickCore-6.Q16.so.2 へのシンボリックリンクを張れないなどが理由。深追いはやめてここで終了、これ以上やるなら、素直に自由度高いVPS等のほうが良さそうです。
- – 参考リンク –
- 2011-04-13 – 祈れ、そして働け ~ Ora et labora
- RMagick Installation FAQ
- ImageMagick RMagickのインストール|WEBデザイン Tips
- ImageMagicのインストール – Road to Myself — 自分を取り戻せ!!
- ImageMagickのインストール|だいきちのブログ
- libpng のインストール | 自宅サーバー Fedora
- amitsamtani.com » RMagicK
- Ruby の関連記事
- Gemの作り方(Ruby Gem)
- ローカル開発中のgemをGemfileに書いてインストール
- 熊本地震の余震が夜に多いのは本当か?Rubyプログラムで検証してみた
- El Capitanでgemのnative extensionビルド失敗に対応
- Rubyで親クラスから子クラスの定数を参照
- MacabをRubyで使う
- rbenv/ruby-buildでRuby最新バージョンをインストール
- Rubyでクラスインスタンス変数にインスタンスメソッドからアクセス
- 距離1kmあたりの緯度・経度の度数を計算(日本・北緯35度)
- Google Maps Geocoding APIで住所から緯度・経度を取得するRubyコード
Leave Your Message!