cpanからMIME::WordDecoderをインストールしようとしてハマったのでメモ

CentOSのサーバーを建てたのですが、perlでメール処理をしようと思ってcpanからMIME::WordDecoderをインストールしようとしたらエラーが出てちょっとてこずったのでメモしておきます。
とりあえずサーバーは建てたばっかりなので、色々モジュールが足りません。
cpanのshellを起動して必要なモジュールをインストールしたりしなければならないわけです。

# perl -MCPAN -e shell

初回起動だと色々聞かれますが基本的にエンターでOKです。
エリアと国名だけasia、Japanと答えました。
さっそくインストールコマンドでMIME::WordDecoderをインストールしてみました。

cpan> install MIME::WordDecoder


なんかエラーがでた。下はその抜粋

t/Entity………….ok 1/30Can’t locate object method “binmode” via package “IO::File” at /root/.cpan/build/MIME-tools-5.423/blib/lib/MIME/Body.pm line 437.
t/Head……………Can’t locate object method “binmode” via package “IO::File” at /root/.cpan/build/MIME-tools-5.423/blib/lib/MIME/Head.pm line 207.
t/Misc……………ok 1/14
# Failed test ‘bug 970725-DNA: QP use of RFC2049 guideline 8’
# at t/Misc.t line 78.
# got: ‘=46rom me’
# expected: ‘=46rom me=
# ‘
t/Misc……………NOK 4/14

なんかエラーがでて正常にインストールが完了しなかった。

Failed Test Stat Wstat Total Fail List of Failed
——————————————————————————-
t/Entity.t 255 65280 30 30 16-30
t/Head.t 255 65280 20 38 2-20
t/Misc.t 7 1792 14 7 4-5 7-11
t/Parser.t 255 65280 30 60 1-30
t/Ref.t 11 2816 50 11 7 13 19 23 27 29 37 39 41 43 45
3 tests skipped.
Failed 5/16 test scripts. 82/289 subtests failed.
Files=16, Tests=289, 2 wallclock secs ( 1.71 cusr + 0.26 csys = 1.97 CPU)
Failed 5/16 test programs. 82/289 subtests failed.
make: *** [test_dynamic] Error 255
/usr/bin/make test — NOT OK
Running make install
make test had returned bad status, won’t install without force

IO::Fileがなんとかってでてるから、これ最新にすればいけるのかなーと思って

cpan> install IO::File

で更新した。
それから

cpan> install MIME::WordDecoder

とまたやってみたら、確かにIO::Fileなんとかっていうエラーは出なくなったが、
# Failed test ‘bug 970725-DNA: QP use of RFC2049 guideline 8’
系のエラーがだらだら出っ放しでインストールが完了しない。
コンパイルは通ってるのでテスト完了して無くてもいいから強制インストールし様かとも思ったのだが、気持ちが悪いのでしっかり調べてちゃんとインストールすることにした。
とりあえずCPANを最新にする事にした。
コマンドのヒストリ(履歴)が使える様になって便利になる。

cpan> install Bundle::CPAN

とりあえずCPANにいってMIME-toolsのREADMEを見てみることにする。

http://search.cpan.org/src/DONEILL/MIME-tools-5.423/README

REQUIREMENTSのところに必要なモジュールが書いてあるのでこれを上から順にinstallして更新していった。(IPC::Open2はoptionalになってるので飛ばした)

REQUIREMENTS
You will need the following installed on your system:
File::Path
File::Spec
IPC::Open2 (optional)
IO::Scalar, … from the IO-stringy distribution
MIME::Base64
MIME::QuotedPrint
Net::SMTP
Mail::Internet, … from the MailTools distribution.

MIME::Base64をインストールして最新にして

cpan> install MIME::Base64

それから、MIME::WordDecoderをインストールしたら

cpan> install MIME::WordDecoder

正常にインストール完了した。

/usr/bin/make install — OK

ググったら海外のサイトは日本のサイトでも同様な問題で困っている記事をいくつか見かけた。明確な解決策が乗っているところは見つけられなかった。
が、しかし、MIME::WordDecoderの最初のインストール時のログを今見てみるとしっかりチェックでMIME::Base64をversion 2.20からversion 3.03にアップグレードしろって出てるwww。
(現在はアップデートでversion 3.07になった)

Checking for module File::Path (version 1)… ok.
Checking for module File::Spec (version 0.6)… ok.
Checking for module File::Temp (version 0.17)… ok.
Checking for module IO::Stringy (version 2.110)… ok.
Checking for module MIME::Base64 (version 3.03)… not found.
— Fallback: Checking for module MIME::Base64 (version 2.20)… ok.
*** Warning: We can work with version 2.20 of MIME::Base64, but
*** we recommend that you upgrade to version 3.03.
*** Note that if you type ‘make test’, then tests
*** 4, 5 and 7-11 of t/Misc.t may fail because of the old version
*** of MIME::Base64
Checking for module Mail::Field (version 1.05)… ok.
Checking for module Mail::Header (version 1.01)… ok.
Checking for module Mail::Internet (version 1.0203)… ok.
Checking if your kit is complete…
Looks good

つまり、エラーが出たときはちゃんとインストール時のログを見ましょうねっていうお話…。www

(Visited 230 times, 1 visits today)

タグ :