Ruby: rmagick更新
メール添付の画像ファイルの読み取り用のRubyスクリプトがエラーになるようになっちゃって、エラーメッセージを見てみるとどうもRMagick絡みでのエラーの模様。
Command output: [DEPRECATION] requiring "RMagick" is deprecated. Use "rmagick" instead /usr/lib64/ruby/1.9.1/rubygems/custom_require.rb:60:in `require': libMagickCore.so.2: cannot open shared object file: No such file or directory - /usr/lib64/ruby/gems/1.9.1/gems/rmagick-2.15.2/lib/RMagick2.so (LoadError) ...
で、RMagickを更新するのかと思ってgemで作業したらエラー
# gem install rmagick Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb checking for gcc... yes checking for Magick-config... no checking for pkg-config... yes Package MagickCore was not found in the pkg-config search path. Perhaps you should add the directory containing `MagickCore.pc' to the PKG_CONFIG_PATH environment variable No package 'MagickCore' found checking for outdated ImageMagick version (<= 6.4.9)... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/ --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/bin/ruby Gem files will remain installed in /usr/lib64/ruby/gems/1.9.1/gems/rmagick-2.15.4 for inspection. Results logged to /usr/lib64/ruby/gems/1.9.1/gems/rmagick-2.15.4/ext/RMagick/gem_make.out
ImageMagickがサーバ上で削除されちゃったか、古くなってしまっていたためらしい。これをyumでインストール:
# yum install ImageMagick 読み込んだプラグイン:fastestmirror, priorities, refresh-packagekit, security インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: centos.usonyx.net * elrepo: ftp.cc.uoc.gr * extras: mirror.vodien.com * updates: mirror.vodien.com 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package ImageMagick.x86_64 0:6.7.2.7-2.el6 will be インストール --> 依存性の処理をしています: libwmf-0.2.so.7()(64bit) のパッケージ: ImageMagick-6.7.2.7-2.el6.x86_64 --> トランザクションの確認を実行しています。 ---> Package libwmf.x86_64 0:0.2.8.4-25.el6_7 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: ImageMagick x86_64 6.7.2.7-2.el6 base 1.9 M 依存性関連でのインストールをします。: libwmf x86_64 0.2.8.4-25.el6_7 updates 132 k トランザクションの要約 ================================================================================ インストール 2 パッケージ 総ダウンロード容量: 2.0 M インストール済み容量: 7.4 M これでいいですか? [y/N]y パッケージをダウンロードしています: (1/2): ImageMagick-6.7.2.7-2.el6.x86_64.rpm | 1.9 MB 00:00 (2/2): libwmf-0.2.8.4-25.el6_7.x86_64.rpm | 132 kB 00:00 -------------------------------------------------------------------------------- 合計 349 kB/s | 2.0 MB 00:05 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : libwmf-0.2.8.4-25.el6_7.x86_64 1/2 インストールしています : ImageMagick-6.7.2.7-2.el6.x86_64 2/2 Verifying : libwmf-0.2.8.4-25.el6_7.x86_64 1/2 Verifying : ImageMagick-6.7.2.7-2.el6.x86_64 2/2 インストール: ImageMagick.x86_64 0:6.7.2.7-2.el6 依存性関連をインストールしました: libwmf.x86_64 0:0.2.8.4-25.el6_7 完了しました!
しかし、これだけでは不足だったのか、どうもImageMagick-develも必要だったらしく、またエラーになってしまったのでこちらもインストール(rmagick用にはこちらだけでもよかったのかも?):
# yum install ImageMagick-devel 読み込んだプラグイン:fastestmirror, priorities, refresh-packagekit, security インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: centos.usonyx.net * elrepo: ftp.cc.uoc.gr * extras: mirror.vodien.com * updates: mirror.vodien.com 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package ImageMagick-devel.x86_64 0:6.7.2.7-2.el6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: ImageMagick-devel x86_64 6.7.2.7-2.el6 base 94 k トランザクションの要約 ================================================================================ インストール 1 パッケージ 総ダウンロード容量: 94 k インストール済み容量: 424 k これでいいですか? [y/N]y パッケージをダウンロードしています: ImageMagick-devel-6.7.2.7-2.el6.x86_64.rpm | 94 kB 00:00 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : ImageMagick-devel-6.7.2.7-2.el6.x86_64 1/1 Verifying : ImageMagick-devel-6.7.2.7-2.el6.x86_64 1/1 インストール: ImageMagick-devel.x86_64 0:6.7.2.7-2.el6 完了しました!
このあとgemでrmagickをインストール:
# gem install rmagick Building native extensions. This could take a while... Successfully installed rmagick-2.15.4 1 gem installed Installing ri documentation for rmagick-2.15.4... Installing RDoc documentation for rmagick-2.15.4...
あと、バーコード認識用に使っていたzbarもなぜかエラー(↓)になっちゃってて、こちらも再インストールした。
# ruby -e 'require "zbar"' /usr/lib64/ruby/gems/1.9.1/gems/zbar-0.2.2/lib/zbar/lib.rb:12:in `rescue in ': Didn't find libzbar on your system (LoadError) Please install zbar (http://zbar.sourceforge.net/) or set ZBAR_LIB if it's in a weird place FFI::Library::ffi_lib() failed with error: library names list must not be empty from /usr/lib64/ruby/gems/1.9.1/gems/zbar-0.2.2/lib/zbar/lib.rb:9:in `' from /usr/lib64/ruby/gems/1.9.1/gems/zbar-0.2.2/lib/zbar/lib.rb:1:in `' ...
gemでインストール:
# gem install zbar zbar: This gem depends on the "zbar" C library. If it's not installed, `require "zbar"` will fail. Successfully installed zbar-0.2.2 1 gem installed Installing ri documentation for zbar-0.2.2... Installing RDoc documentation for zbar-0.2.2...
zbarのライブラリ自体も再インストールが必要だった(リポジトリにepelを指定):
# yum --enablerepo=epel install zbar 読み込んだプラグイン:fastestmirror, priorities, refresh-packagekit, security インストール処理の設定をしています Loading mirror speeds from cached hostfile epel/metalink | 5.6 kB 00:00 * base: centos.usonyx.net * elrepo: ftp.cc.uoc.gr * epel: mirror.wanxp.id * extras: mirror.readyspace.com * updates: mirror.vodien.com epel | 4.3 kB 00:00 http://mirror.wanxp.id/epel/6/x86_64/repodata/d85fb3f508595e4e5ee2a425b729e19696f44916af9e52baf249441f62f207e4-primary.sqlite.bz2: [Errno 12] Timeout on http://mirror.wanxp.id/epel/6/x86_64/repodata/d85fb3f508595e4e5ee2a425b729e19696f44916af9e52baf249441f62f207e4-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds') 他のミラーを試します。 http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/repodata/d85fb3f508595e4e5ee2a425b729e19696f44916af9e52baf249441f62f207e4-primary.sqlite.bz2: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found" 他のミラーを試します。 http://mirror.premi.st/epel/6/x86_64/repodata/d85fb3f508595e4e5ee2a425b729e19696f44916af9e52baf249441f62f207e4-primary.sqlite.bz2: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found" 他のミラーを試します。 epel/primary_db | 5.7 MB 00:00 119 packages excluded due to repository priority protections 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package zbar.x86_64 0:0.10-25.el6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: zbar x86_64 0.10-25.el6 epel 143 k トランザクションの要約 ================================================================================ インストール 1 パッケージ 総ダウンロード容量: 143 k インストール済み容量: 298 k これでいいですか? [y/N]y パッケージをダウンロードしています: zbar-0.10-25.el6.x86_64.rpm | 143 kB 00:00 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : zbar-0.10-25.el6.x86_64 1/1 Verifying : zbar-0.10-25.el6.x86_64 1/1 インストール: zbar.x86_64 0:0.10-25.el6 完了しました!