ハマった、はまった。Image::Magick

▶ in ひとりごと posted 2009.06.08 Monday / 21:53

はじめてのx64 IISへの挑戦でおおハマリでした。


先程も独り言でちょっと触れたImage::Magickですが、PerlのバージョンやImage::Magickのバージョンを変えても、perl -e "use image::magick"で以下のエラーが出てしまい、手詰まりでした。

Can't load 'C:/Perl/site/lib/auto/Image/Magick/Magick.dll' for module Image::Magick: load_file:このアプリケーションのサイド バイ サイド構成が正しくないため、ア
プリケーションを開始できませんでした。詳細については、アプリケーションのイベント ログを参照してください。 at C:/Perl/lib/DynaLoader.pm line 202.
at -e line 1
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.


パスが通っていないとか、その類のエラーではない事はメッセージから明白だったのですが、いかんせんx64の環境でx86のPerlとImage::Magickを使っているので問題の切り分けが出来ませんでした。しかも、x86の実験環境ではうまく動いているので原因の切り分けに非常に時間がかかりましたが、無事解決しました。


結論としてMicrosoft Visual C++ 2008のランタイムを明示的にインストールする事で解決しました。というのは、Image::MagickのインストールされているフォルダにはVC90系のDLLが多数格納されている事を見つけ、x64とx86で環境の違いで動作不能になるのならこれしかないと踏んだからです。ただ、Microsoft Visual C++ 2008のランタイムはx64版とx86版があり、僕は両方ともインストールしてみたところ見事Image::Magickが動作しました。


基本といえば基本ですが、えらいハマりました。x86環境で実験環境を整えても検証は出来るだろうという甘い考えが引き起こしたアクシデントでした。


ダウンロード:Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)
ダウンロード:Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x64)

ぼちぼちやっています。

▶ in ひとりごと posted 2009.06.08 Monday / 20:05

昨日のまあぼう地方はいい天気だったので、給油ついでに外に出たら、本能的に阪和道に乗ってしまい和歌山方面に飛んで行ってしまいました。携帯電話で写真を撮影したら、挿入しているカードがmicro SDHCでさらにリーダーも携帯電話とPCを接続するケーブルも持っていないのでブログに掲載する事も出来ずで苦笑でした。


さて、先日から今使っているサーバの置き換えの準備というかテストというかを時間が空いている時にやっています。今時はリモートデスクトップで管理者画面をのぞいてもパフォーマンスが低下する事無く、非常に便利です。取り急ぎ一度は構築したのですが、IISの設定が壊れたようで何を書きなおしても正常に動作しなくなり、挙句の果てにIISのアンインストールをして再インストールをする際に致命的なエラーとか吐いて玉砕、結局OSを再インストールして初期状態をWindowsバックアップでイメージを取り、再度構築をしました。

OSはx64環境で構築しているのですがPerlとImage::Magickは32ビットをインストールしてみたのですが、Image::MagickのDLLがPerl上でエラーとなり、うまく動作させる事が出来ません。この辺はもしかしたら、バージョンアップで何とかなるのか、32ビット版ではエラーになってしまうのか、いかんせん事前評価環境が仮想マシンの32ビットOS上でしたので、手探りで検証を進めています。


いっそのこと、Webサーバとメールサーバは静音の小型PCでこじんまりとやりたいのですが…。まあ、まずは今構築中の環境を本番に乗せる事を考えます。
PAGE TOP