ラベル ImageMagick の投稿を表示しています。 すべての投稿を表示
ラベル ImageMagick の投稿を表示しています。 すべての投稿を表示

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(^-^

2008年8月4日月曜日

FreeBSDで ImageMagick... RMagick2 のインストール

FreeBSDにRMagickのインストール

環境
FreeBSD 6.3-RELEASE
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6]
ImageMagick-nox11 6.4.1.8
RMagick 2.5.2

RMagickはImageMagicのRubyインターフェースです。
JPEG,JPEG2000,PNG,GIF,TIFFファイルの入出力に対応し、
画像サイズ変更や図形描画、文字の表示を行うことが出来ます。
Web画像のサムネイルの自動生成などが出来るようになります。


まずImageMagickをインストールします。

#cd /usr/ports/graphics/ImageMagick/
#make install

l
l Options for ImageMagick-nox11 6.4.1.8
l +------------------------------------------------------------------
l l[ ] X11 X11 support
l l[X] IMAGEMAGICK_TESTS Run bundled self-tests after build
l l[ ] IMAGEMAGICK_OPENMP Enable OpenMP for SMP
l l[X] IMAGEMAGICK_PERL Perl support
l l[ ] IMAGEMAGICK_MODULES Modules support (broken)
l l[X] IMAGEMAGICK_BZLIB Bzlib support
l l[X] IMAGEMAGICK_16BIT_PIXEL 16bit pixel support
l l[ ] IMAGEMAGICK_DJVU DJVU format support (needs threads)
l l[X] IMAGEMAGICK_LCMS LCMS support
l l[ ] IMAGEMAGICK_HDRI High Dynamic Range Images (HDRI)
l l[X] IMAGEMAGICK_TTF Freetype support
l l[X] IMAGEMAGICK_FONTCONFIG Fontconfig support
l l[X] IMAGEMAGICK_JPEG JPG format support
l l[ ] IMAGEMAGICK_OPENEXR OpenEXR support (needs threads)
l l[X] IMAGEMAGICK_PNG PNG format support
l +------------------------------------------------------------------
l [ OK ] Cancel
+------------------------------------------------------------------

サーバーで利用を考えているのでX11とAcrobat PDFとあまり使われなくなったTIFFサポートをはずしました。

[ ]X11
[ ]IMAGEMAGICK_TIFF
[ ]IMAGEMAGICK_PDF

でOKを選択
続いてRMagicをインストールします。
Ruby gem からインストールするので、先にgemをインストールしておいてください。
gemからRMagicをインストールします。


# gem install rmagick

ただこれで
Bulk updating Gem source index for: http://gems.rubyforge.org
Building native extensions. This could take a while...
Successfully installed rmagick-X.Y.Z

とメッセージが出てもインストールできていないことがあるらしい。
gemではインストールが成功したかは確認できないのが原因。
そこで、irbでインストールの状況を確認します。

# irb -rubygems -r RMagick
irb(main):001:0> puts Magick::Long_version

This is RMagick 2.5.2 ($Date: 2008/07/13 21:18:28 $) Copyright (C) 2008 by Timothy P. Hunter
Built with ImageMagick 6.4.1 08/03/08 Q16 http://www.imagemagick.org
Built for ruby 1.8.6
Web page: http://rmagick.rubyforge.org
Email: rmagick@rubyforge.org
=> nil

のように表示が出れば成功しています。
irbを終了します。

irb(main):002:0> exit

/usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2
にインストールされ、そこにREADME.htmlが生成されます。
この説明書をよみながら次の手順を進めていきます。
バージョン番号は自分でインストールしたバージョンに読み替えてください。

#cd /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2

RMagicのテスト
#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.5.2/ext/RMagick/extconf.rb
checking for Ruby version >= 1.8.2... yes
checking for cc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.3.0... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for magick/MagickCore.h... yes
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagickCore... yes
checking for snprintf() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,magick/MagickCore.h... yes
checking for AcquireQuantumMemory() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,magick/MagickCore.h... yes
:
:
/usr/local/bin/ruby18 -I /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2/./lib -I /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2/./ext/RMagick writing_mode02.rb (example 185 of 185)
#

のように表示が出て、サンプルプログラムの実行が行われます。
エラーが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

これで完了。

動作確認
100x100ピクセルの赤色単色のgifファイルの生成を行ってみます。

[red.rb]
require 'RMagick'
include Magick
# Create a 100x100 red image.
f = Image.new(100,100) { self.background_color = "red" }
f.write("red.gif")
exit

#ruby red.rb

でred.gifが生成され表示してみて確認し完了!


ドキュメントのインストール先
/usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2/doc/index.html

RMagickのインストール先
/usr/local/lib/ruby/gems/1.8/gems/rmagick-2.5.2/lib/

ご参考:
RMagic
http://studio.imagemagick.org/RMagick/doc/

ImageMagic
http://www.imagemagick.org/script/index.php