2008年10月1日水曜日

RMagick2が動かない。。。portupgradeを行ったら

この記事は
 FreeBSD6.3
 Ruby1.8.6
 ImageMagick 6.4.3
 RMagick2.7
について書かれています。

FreeBSDのportupgradeを行ったところ、RMagick2が動かなくなりました。

/usr/local/lib/ruby/site_ruby/1.8/RMagick2.so: This version of RMagick was created to run with ImageMagick 6.4.1 but ImageMagick 6.4.3 is in use. (RuntimeError)
from /usr/local/lib/ruby/site_ruby/1.8/RMagick.rb:11
from resizeimg.rb:7:in `require'
from resizeimg.rb:7

あらま。
RMagickのバージョンを調べようと。。。

#irb -rubygems -r RMagick
/usr/local/lib/ruby/site_ruby/1.8/RMagick2.so:RuntimeError: This version of RMagick was created to run with ImageMagick 6.4.1 but ImageMagick 6.4.3 is in use.

となりまして、バージョンも表示できない状態です。
RMagickは、gemでインストールしたので、ports_upgradeでは更新できなかったようです。
まぁ。そりゃそうですね。
とはいえ、ports_upgradeしたらgemでインストールされたものまでアップグレードしてもらいたいような気もしますが、それはおいといて、RMagickをアップグレードします。

#gem update rmagick
Updating installed gems
Updating rmagick
Building native extensions. This could take a while...
Successfully installed rmagick-2.7.0
Gems updated: rmagick

成功したようです。が、どうもまだRMagick2はエラーを出し動いてくれません。

#ruby resizeimg.rb
/usr/local/lib/ruby/site_ruby/1.8/RMagick2.so: This version of RMagick was created to run with ImageMagick 6.4.1 but ImageMagick 6.4.3 is in use. (RuntimeError)
from /usr/local/lib/ruby/site_ruby/1.8/RMagick.rb:11
from resizeimg.rb:7:in `require'
from resizeimg.rb:7

gem update rmagickは何をしたのだろうとフォルダを覗いて見ると

#cd /usr/local/lib/ruby/gems/1.8/gems/
#ll
drwxr-xr-x 6 root wheel 512 Oct 1 11:35 .
drwxr-xr-x 6 root wheel 512 Sep 27 21:50 ..
drwxr-xr-x 6 root wheel 512 Aug 6 12:54 rmagick-2.5.2
drwxr-xr-x 6 root wheel 512 Oct 1 11:35 rmagick-2.7.0
drwxr-xr-x 3 root wheel 512 Sep 27 21:51 sources-0.0.2

rmagick-2.7.0をダウンロードしてざっくりビルドしただけのようです。
rmagick-2.7.0/README.htmlを読むとアップグレードするには、上書きすれば良いと記述がありました。が、一応古いRMagickをアンインストールして最新版をインストールしなおします。

#cd /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2
#ruby uninstall.rb
rm -f /usr/local/lib/ruby/site_ruby/1.8/RMagick.rb
rm -f /usr/local/lib/ruby/site_ruby/1.8/i386-freebsd6/RMagick.so
/usr/local/lib/ruby/site_ruby/1.8/rvg
/usr/local/share/RMagick/ex/images
/usr/local/share/RMagick/ex
/usr/local/share/RMagick/css
/usr/local/share/RMagick/scripts
/usr/local/share/RMagick

#cd ../rmagick-2.7.0
#ruby setup.rb
---> lib
---> lib/rvg
<--- lib/rvg
<--- lib
---> ext
---> ext/RMagick
/usr/local/bin/ruby18 /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.7.0/ext/RMagick/extconf.rb
checking for Ruby version >= 1.8.2... yes
checking for cc... yes
checking for Magick-config... yes
:
:
/usr/local/bin/ruby18 -I /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.7.0/./lib -I /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.7.0/./ext/RMagick writing_mode01.rb (example 186 of 187)
/usr/local/bin/ruby18 -I /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.7.0/./lib -I /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.7.0/./ext/RMagick writing_mode02.rb (example 187 of 187)

のように表示が出て、サンプルプログラムの実行が行われます。
エラーが5個以内なら正常終了します。

つづいて
#ruby setup.rb install
rm -f InstalledFiles
---> lib
mkdir -p /usr/local/lib/ruby/site_ruby/1.8
install RMagick.rb /usr/local/lib/ruby/site_ruby/1.8/
install RMagick2.so /usr/local/lib/ruby/site_ruby/1.8/
---> lib/rvg
mkdir -p /usr/local/lib/ruby/site_ruby/1.8/rvg
install stretchable.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install rvg.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install deep_equal.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install transformable.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install embellishable.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install describable.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install units.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install paint.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install container.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install clippath.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install pathdata.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install text.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install stylable.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
install misc.rb /usr/local/lib/ruby/site_ruby/1.8/rvg
<--- lib/rvg
<--- lib
---> ext
---> ext/RMagick
mkdir -p /usr/local/lib/ruby/site_ruby/1.8/i386-freebsd6
install RMagick2.so /usr/local/lib/ruby/site_ruby/1.8/i386-freebsd6/.
<--- ext/RMagick
<--- ext

post-install.rb: installing documentation...
mkdir -p /usr/local/share/RMagick
mkdir -p /usr/local/share/RMagick/scripts
mkdir -p /usr/local/share/RMagick/ex
mkdir -p /usr/local/share/RMagick/ex/images
mkdir -p /usr/local/share/RMagick/css

これで終了です。

直りましたv(^-^

0 件のコメント: