OpenSolaris に CPAN で DBD::mysql をインストール

  • 投稿日:
  • by
OpenSolaris で Movable Type をインストールしようと、DBD::mysql のパッケージがないかリポジトリを探していたんだが、どうやら OpenSolaris の標準リポジトリには DBD::mysql がないようだ...orz 最初に言うと、OpenSolaris 標準のリポジトリに入っているものは使わない方がいい。不便すぎる...
DBD::mysql に限らず、入っているソフトウェアやモジュール群が少ないのだ。Perl のバージョンも 5.8.4 だし。たぶん有料のリポジトリにいろいろ入っているのかも知れないが、有料リポジトリを使う気はないので、以下のリポジトリを追加して対応するのがよいと思われる。
  • contrib
    pkg set-authority -O http://pkg.opensolaris.org/contrib contrib
    
  • Sunfreeware
    pkg set-authority -O http://pkg.sunfreeware.com:9000 sunfreeware.com
    
  • blastwave
    pkg set-authority -O http://blastwave.network.com:10000 blastwave.com
    
リポジトリを追加したら、リストを更新するために以下のコマンドを実行。
pkg refresh --full
blastwave リポジトリに DBD::mysql が含まれていることを確認したが、これは、OpenSolaris 標準の Perl 用ではなく、blastwave リポジトリで用意されている Perl 用のモジュールとなるので注意。

OpenSolaris 標準の Perl 用の DBD::mysql パッケージを何とかインストールしようと試みたが、少なくとも自分にはどう頑張っても無理だった...orz

で、仕方なく CPAN で入れることにした。...が、これが悪夢の始まりだった。
CPAN の初期化の際に、デフォルトで設定されている ftp のリポジトリに繋ぎに行くのだが、そこでタイムアウトとなってしまった。
メッセージは「LWP not available」とのこと。LWP 入ってないんかい...orz
LWP(libwww-perl)を OpenSolaris 標準のリポジトリからインストールしようとパッケージマネージャーから探してみたが、なんとこれもない...もういい、こんなリポジトリ使ってやらない。
半分自棄で CPAN サイトからサーバーに libwww-perl の tarball をダウンロードしてインストール。
$ tar zxvf libwww-perl-5.824.tar.gz
$ cd libwww-perl-5.824
$ perl Makefile.PL
$ make
$ make test
すると、依存関係でエラーが発生。
$ make test
/usr/bin/perl t/TEST 0
base/common-req...........ok                                                 
base/cookies..............ok                                                 
base/date.................ok                                                 
base/headers-auth.........ok                                                 
base/headers-etag.........ok                                                 
base/headers-util.........ok                                                 
base/headers..............ok                                                 
base/http-config..........ok                                                 
base/http.................ok                                                 
base/listing..............ok                                                 
base/mediatypes...........ok                                                 
base/message-old..........ok 9/20Can't locate HTML/Entities.pm in @INC (@INC contains: ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../. /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ../blib/lib/HTTP/Response.pm line 209.
base/message-old..........dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 10-20
        Failed 11/20 tests, 45.00% okay
base/message-parts........ok                                                 
base/message..............ok 87/118# Test 89 got: <undef$gt; (base/message.t at line 364)
Wide character in print at /usr/perl5/5.8.4/lib/Test.pm line 416.
#    Expected: 'Hi there ?
'
#  base/message.t line 364 is: skip($NO_ENCODE, sub { eval { $m->decoded_content } }, "\x{FEFF}Hi there \x{263A}\n");
base/message..............NOK 92# Failed test 92 in base/message.t at line 369
#  base/message.t line 369 is: ok($m2->decode);
base/message..............NOK 93# Test 93 got: 'gzip, base64' (base/message.t at line 370)
#    Expected: <undef>
#  base/message.t line 370 is: ok($m2->header("Content-Encoding"), undef);
base/message..............NOK 94# Test 94 got: 'H4sICFWAq0ECA3h4eAB7v3u/R6ZCSUZqUarCoxm7uAAZKHXiEAAAAA==
' (base/message.t at line 371)
#    Expected: qr{(?-xism:Hi there)}
#  base/message.t line 371 is: ok($m2->content, qr/Hi there/);
base/message..............NOK 95# Failed test 95 in base/message.t at line 373
#  base/message.t line 373 is: ok(grep { $_ eq "gzip" } $m->decodable);
base/message..............NOK 96# Test 96 got: <undef> (base/message.t at line 379)
Wide character in print at /usr/perl5/5.8.4/lib/Test.pm line 416.
#    Expected: 'Hi there ?
'
#  base/message.t line 379 is: skip($NO_ENCODE, sub { eval { $m->decoded_content } }, "\x{FEFF}Hi there \x{263A}\n");
base/message..............ok 109/118Can't locate Compress/Zlib.pm in @INC (@INC contains: ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../. /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ../blib/lib/HTTP/Message.pm line 376.
base/message..............dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 89, 92-96, 110-118
        Failed 15/118 tests, 87.29% okay
base/negotiate............ok                                                 
base/protocols............ok                                                 
base/request..............# Failed test 3 in base/request.t at line 16
#  base/request.t line 16 is: ok($req->header("Accept-Encoding") =~ /\bgzip\b/);  # assuming Compress::Zlib is there
base/request..............FAILED test 3                                      
        Failed 1/11 tests, 90.91% okay
base/response.............ok                                                 
base/status-old...........ok                                                 
base/status...............ok                                                 
base/ua...................ok                                                 
html/form-maxlength.......Can't locate HTML/TokeParser.pm in @INC (@INC contains: . ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../.) at ../blib/lib/HTML/Form.pm line 119, <data> line 1.
# Looks like your test died before it could output anything.
html/form-maxlength.......dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-12
        Failed 12/12 tests, 0.00% okay
html/form-multi-select....Can't locate HTML/TokeParser.pm in @INC (@INC contains: ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../. /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ../blib/lib/HTML/Form.pm line 119.
# Looks like your test died before it could output anything.
html/form-multi-select....dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
html/form-param...........Can't locate HTML/TokeParser.pm in @INC (@INC contains: ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../. /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ../blib/lib/HTML/Form.pm line 119.
html/form-param...........dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-22
        Failed 22/22 tests, 0.00% okay
html/form.................Can't locate HTML/TokeParser.pm in @INC (@INC contains: ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../. /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ../blib/lib/HTML/Form.pm line 119.
html/form.................dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-126
        Failed 126/126 tests, 0.00% okay
robot/rules-dbm...........ok                                                 
robot/rules...............ok                                                 
robot/ua-get..............FAILED test 5                                      
        Failed 1/8 tests, 87.50% okay
robot/ua..................FAILED test 5                                      
        Failed 1/7 tests, 85.71% okay
local/autoload-get........Can't locate HTML/Entities.pm in @INC (@INC contains: ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../. /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ../blib/lib/HTTP/Response.pm line 209.
local/autoload-get........dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED test 1
        Failed 1/1 tests, 0.00% okay
local/autoload............Can't locate HTML/Entities.pm in @INC (@INC contains: ../blib/lib ../blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl ../. /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at ../blib/lib/HTTP/Response.pm line 209.
local/autoload............dubious                                            
        Test returned status 2 (wstat 512, 0x200)
DIED. FAILED test 1
        Failed 1/1 tests, 0.00% okay
local/chunked.............ok                                                 
local/get.................ok                                                 
local/http-get............ok 4/21Use of uninitialized value in string eq at local/http-get.t line 167, <daemon> line 1.
local/http-get............FAILED tests 5-6, 21                               
        Failed 3/21 tests, 85.71% okay
local/http................ok 4/18Use of uninitialized value in string eq at local/http.t line 158, <daemon> line 1.
local/http................FAILED tests 5, 18                                 
        Failed 2/18 tests, 88.89% okay
local/protosub............ok                                                 
Failed Test              Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
base/message-old.t          2   512    20   22 110.00%  10-20
base/message.t              2   512   118   24  20.34%  89 92-96 110-118
base/request.t                         11    1   9.09%  3
html/form-maxlength.t       2   512    12   24 200.00%  1-12
html/form-multi-select.t    2   512     2    4 200.00%  1-2
html/form-param.t           2   512    22   44 200.00%  1-22
html/form.t                 2   512   126  252 200.00%  1-126
local/autoload-get.t        2   512     1    1 100.00%  1
local/autoload.t            2   512     1    1 100.00%  1
local/http-get.t                       21    3  14.29%  5-6 21
local/http.t                           18    2  11.11%  5 18
robot/ua-get.t                          8    1  12.50%  5
robot/ua.t                              7    1  14.29%  5
Failed 13/36 test scripts, 63.89% okay. 198/1064 subtests failed, 81.39% okay.
make: *** [test] Error 29
調べると、以下のモジュールが依存している模様。
  • URI
  • HTML::Tagset
  • HTML::Entities
  • HTML::TokeParser
  • Compress::Zlib
まずは URI モジュールから。以下から tarball をダウンロードし、同じように Makefile を作成後 make、make test、make install を実行。 次は HTML::Tagset。 HTML::Entities と HTML::TokePerser はどちらも HTML-Tagset-3.20.tar.gz に含まれているので一緒にインストール。 すると、コンパイラに関するエラーが発生。
$ make
cp lib/HTML/PullParser.pm blib/lib/HTML/PullParser.pm
cp Parser.pm blib/lib/HTML/Parser.pm
cp lib/HTML/Entities.pm blib/lib/HTML/Entities.pm
cp lib/HTML/LinkExtor.pm blib/lib/HTML/LinkExtor.pm
cp lib/HTML/TokeParser.pm blib/lib/HTML/TokeParser.pm
cp lib/HTML/Filter.pm blib/lib/HTML/Filter.pm
cp lib/HTML/HeadParser.pm blib/lib/HTML/HeadParser.pm
/usr/bin/perl /usr/perl5/5.8.4/lib/ExtUtils/xsubpp  -typemap /usr/perl5/5.8.4/lib/ExtUtils/typemap -typemap typemap  Parser.xs > Parser.xsc && mv Parser.xsc Parser.c
/usr/bin/perl mkhctype >hctype.h
/usr/bin/perl mkpfunc >pfunc.h
cc -c   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO -xO3 -xspace -xildoff   -DVERSION=\"3.59\" -DXS_VERSION=\"3.59\" -KPIC "-I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE"  -DMARKED_SECTION Parser.c
cc: unrecognized option `-KPIC'
cc: language ildoff not recognized
cc: Parser.c: linker input file unused because linking not done
Running Mkbootstrap for HTML::Parser ()
chmod 644 Parser.bs
rm -f blib/arch/auto/HTML/Parser/Parser.so
LD_RUN_PATH="" cc  -G Parser.o  -o blib/arch/auto/HTML/Parser/Parser.so      
cc: Parser.o: No such file or directory
cc: no input files
make: *** [blib/arch/auto/HTML/Parser/Parser.so] Error 1
調べまくった結果、コンパイラを gcc に変更した上で、作成される Makefile を修正すれば通ることが判明。
以下が Makefile の作成。
$ perl Makefile.PL CC=gcc
で、Makefile を修正。
$ vi Makefile
修正内容
修正前 修正後
CCCDLFLAGS = -KPIC CCCDLFLAGS =
OPTIMIZE = -xO3 -xspace -xildoff OPTIMIZE =
再度 make test を実行。
$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/api_version........ok                                                      
t/argspec-bad........ok                                                      
t/argspec............ok                                                      
t/argspec2...........ok                                                      
t/attr-encoded.......ok                                                      
t/callback...........ok                                                      
t/case-sensitive.....ok                                                      
t/cases..............ok                                                      
t/comment............ok                                                      
t/crashme............ok                                                      
t/declaration........ok                                                      
t/default............ok                                                      
t/document...........ok                                                      
t/dtext..............ok                                                      
t/entities...........ok                                                      
t/entities2..........ok                                                      
t/filter-methods.....ok                                                      
t/filter.............ok                                                      
t/handler-eof........ok                                                      
t/handler............ok                                                      
t/headparser-http....ok                                                      
        1/1 skipped: Can't locate HTTP/Headers.pm in @INC (@INC contains: /export/home/user/HTML-Parser-3.59/blib/lib /export/home/user/HTML-Parser-3.59/blib/arch /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl . /usr/perl5/5.8.4/lib/i86pc-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) at /export/home/user/HTML-Parser-3.59/blib/lib/HTML/HeadParser.pm line 99.
t/headparser.........ok                                                      
t/ignore.............ok                                                      
t/largetags..........ok                                                      
t/linkextor-base.....ok                                                      
t/linkextor-rel......ok                                                      
t/magic..............ok                                                      
t/marked-sect........ok                                                      
t/msie-compat........ok                                                      
t/offset.............ok                                                      
t/options............ok                                                      
t/parsefile..........ok                                                      
t/parser.............ok                                                      
t/plaintext..........ok                                                      
t/pod................skipped
        all skipped: Test::Pod 1.00 required for testing POD
t/process............ok                                                      
t/pullparser.........ok                                                      
t/script.............ok                                                      
t/skipped-text.......ok                                                      
t/stack-realloc......ok                                                      
t/textarea...........ok                                                      
t/threads............skipped
        all skipped: Not configured for threads
t/tokeparser.........ok                                                      
t/uentities..........ok                                                      
t/unbroken-text......ok                                                      
t/unicode-bom........ok                                                      
t/unicode............ok                                                      
t/xml-mode...........ok                                                      
All tests successful, 2 tests and 1 subtest skipped.
Files=48, Tests=436,  5 wallclock secs ( 2.70 cusr +  0.96 csys =  3.66 CPU)
HTTP::Headers がないとのメッセージ。うーん。調べてみると、HTTP::Headers は libwww-perl に入っている... 無理じゃん!
ということで、libwww-perl を入れるために頑張っている今の段階では、実質 HTTP::Headers はインストールできない。まぁスキップしてくれているのでそのまま進めて問題ないと都合よく解釈することにした。

で、やっと最後は Compress::Zlib。しかし、何となーく嫌な予感がして依存関係を調べると...やっぱりあったよ orz
  • Scalar::Util
  • Compress::Raw::Zlib
  • IO::Uncompress::Base
  • IO::Uncompress::Gunzip
Scalar::Util はすでにインストールされていたのでスキップ。
まずは Compress::Raw::Zlib から。 HTML-Parser-3.59.tar.gz 同様、コンパイルエラー。同じ対処方法で、gcc でコンパイルして作った Makefile を修正して make、make test、make install。 次は IO::Uncompress::Base。 make test で以下の抜粋のように Test::Pod がないと表示されるが、スキップしてくれているので無視。
t/99pod.........skipped
        all skipped: Test::Pod 1.00 required for testing POD
IO::Uncompress::Gunzip。 これは make test でのスキップが若干多かった。少し不安だったが時間もないので無視。
t/006zip........................ok                                           
        32/77 skipped: IO::Compress::Bzip2 not available

t/020isize......................skipped
        all skipped: Lengthy Tests Disabled

t/105oneshot-zip-bzip2-only.....skipped
        all skipped: IO::Compress::Bzip2 not available

t/109merge-zip..................skipped
        all skipped: not implemented yet
で、やっと Compress::Zlib。 また make test で Test::Pod がないことによるスキップ。無視無視。
t/99pod.........skipped
        all skipped: Test::Pod 1.00 required for testing POD
すべての依存関係が解決し、ついに libwww-perl をコンパイル&インストール。
make test でスキップが出るが無視。もう何も感じない。
base/message..............ok                                                 
        6/118 skipped: Need Compress::Bzip2
終わった... やっと終わった。これで CPAN が使える。万感の思いを込めて DBD::mysql をインストール。
$ perl -MCPAN -e shell

cpan> install DBD::mysql
CPAN: Storable loaded ok
Going to read /export/home/user/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Going to read /export/home/user/.cpan/sources/modules/02packages.details.txt.gz
  Database was generated on Sat, 07 Feb 2009 22:26:52 GMT
CPAN: HTTP::Date loaded ok

  There's a new CPAN.pm version (v1.9301) available!
  [Current version is v1.7601]
  You might want to try
    install Bundle::CPAN
    reload cpan
  without quitting the current session. It should be a seamless upgrade
  while we are running...

Going to read /export/home/user/.cpan/sources/modules/03modlist.data.gz
Can't find string terminator "'" anywhere before EOF at (eval 19) line 20873, <fh> line 18711.
        CPAN::Index::rd_modlist('CPAN::Index', '/export/home/user/.cpan/sources/modules/03modlist.data.gz') called at /usr/perl5/5.8.4/lib/CPAN.pm line 3129
        CPAN::Index::reload('CPAN::Index') called at /usr/perl5/5.8.4/lib/CPAN.pm line 675
        CPAN::exists('CPAN=HASH(0x85b2ce4)', 'CPAN::Module', 'DBD::mysql') called at /usr/perl5/5.8.4/lib/CPAN.pm line 1842
        CPAN::Shell::expandany('CPAN::Shell', 'DBD::mysql') called at /usr/perl5/5.8.4/lib/CPAN.pm line 2078
        CPAN::Shell::rematein('CPAN::Shell', 'install', 'DBD::mysql') called at /usr/perl5/5.8.4/lib/CPAN.pm line 2165
        CPAN::Shell::install('CPAN::Shell', 'DBD::mysql') called at /usr/perl5/5.8.4/lib/CPAN.pm line 201
        eval {...} called at /usr/perl5/5.8.4/lib/CPAN.pm line 201
        CPAN::shell() called at -e line 1
ありゃ、エラーだ...なんか面倒になってきた。エラーと一緒に新しいバージョンの CPAN が利用可能とのことなので、息抜きのつもりで CPAN をアップグレード。
cpan> install Bundle::CPAN
なんだかすごい量のモジュールが入ってきてる...30分ぐらい経過してようやく終わったかと思ったら、なんか UNINST=1(CPAN 初期化時に任意で設定する項目。インストール済みのモジュールがあった場合に上書きを許可する。)したいなら root で実行しろって感じのメッセージが出てた...やってやろうじゃないの。

で、流れるようなログを見ていると、なんかうまくいってるっぽい。
最後に、CPAN の設定をするか聞かれるので、自分は no を選択。これはお好みで。
Do you want to modify/update your configuration (y|n) ? [no]
アップグレード終了後、念のため、再度 DBD::mysql のインストールに挑戦。
...できた。できちゃったよ、はは。 調子に乗って、mt-check.cgi で未インストールのモジュールを入れちゃった。
しかし、DBD::SQLite と DBD::SQLite2 は make test で エラーが出てインストールできず。(Mail::Sendmail もインストール時のテストメールの送信でコケたけど、大した問題じゃないので無視。)
t/07busy................ Failed 4/8 subtests
t/08create_function..... Failed 13/18 subtests

make: Fatal error: Command failed for target `test_dynamic'
test_dynamic に関するエラーについてもかなり調べたのだが、どうにも対処方法が見つからず、残念だが断念。

だが、これで MySQL での Movable Type のインストールには成功。...疲れた。

結論。最初に言った通り、OpenSolaris 標準の Perl は使わない方がいい。blastwave リポジトリの Perl とそのモジュールを使った方がたぶん何倍も楽。

参考にしたサイト