※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】 さーて、パーラーになるべく、sledgeをインストール。
sledgeのサイト からDownloadを辿ってtarをもらってくる。バージョンは1.11だった。
解凍してINSTALLを読むと、必要なものをCPANから入れろって言われる。
$ sudo perl -MCPAN -e 'install Bundle::Sledge'
残念ながら、ftpが通らないのさ。
CPAN.pmを直にいじってどうのこうのと書いてあるサイトにぶち当たったので(ctl+cでっていう技もあったらしいが、手元ではcpanシェルから抜けてしまってどうにもならず)、CPAN.pmを探す。なんだかみんながあるって書いてる場所にない。
俺の Ubuntu 8.04 LTS は /usr/share/perl/5.8.8/CPAN.pm にあった。
Defaultsiteの設定を、書き換えた
$CPAN::Defaultsite ||= "http://ftp.nara.wide.ad.jp/pub/CPAN/";
改めて、がつがつエンターを連打して進む。
国を選べといわれるので、仕方なく日本を選んで、サーバを選べと言われるので仕方なくftpのサーバを選ぶ。エンターキーを叩くと、自由にサーバを入れろといわれるので、httpのサイトを指定した。
その後、しばらくftpのサーバからバカみたいにfetchしようと試みる。何回か失敗するとhttpのサーバにアクセスしてあっという間にとってくるんだけど、次のファイルもまたftpにトライするorz。
しばらくすると、 cpan のバージョンがうんたらって出るので、一度シェルを止める。~/.cpan/CPAN/MyConfig.pmができているので、urllistの値を編集してしまう。
'urllist' => [q[http://ftp.nara.wide.ad.jp/pub/CPAN/]],
もう一度、 sudo perl -MCPAN -e 'install Bundle::Sledge' ってやったらすごい勢いでcpanからモジュール持ってくるよ。
なんてこといわずに、とりあえずの設定ファイル(~/.cpan/CPAN/MyConfig.pm)をさらしとけば困らないんだろうな。
多分、所定の場所に置けばそれ以外は変更しないでもチャカチャカ進むようになるんじゃないかな?
各種Pathは変えてね。Perlの人はこういうゴミが散乱するの困ったりするのかな?
$CPAN::Config = {
'build_cache' => q[100],
'build_dir' => q[/home/everes/.cpan/build],
'cache_metadata' => q[1],
'cpan_home' => q[/home/everes/.cpan],
'cpan_version_check' => q[1],
'ftp' => q[/usr/bin/ftp],
'ftp_proxy' => q[],
'getcwd' => q[cwd],
'gpg' => q[/usr/bin/gpg],
'gzip' => q[/bin/gzip],
'histfile' => q[/home/everes/.cpan/histfile],
'histsize' => q[1000],
'http_proxy' => q[],
'inactivity_timeout' => q[0],
'index_expire' => q[1],
'inhibit_startup_message' => q[0],
'keep_source_where' => q[/home/everes/.cpan/sources],
'lynx' => q[/usr/bin/lynx],
'make' => q[/usr/bin/make],
'make_arg' => q[],
'make_install_arg' => q[],
'makepl_arg' => q[INSTALLDIRS=site],
'ncftp' => q[],
'ncftpget' => q[],
'no_proxy' => q[],
'pager' => q[/usr/bin/less],
'prerequisites_policy' => q[follow],
'scan_cache' => q[atstart],
'shell' => q[/usr/bin/zsh],
'tar' => q[/bin/tar],
'term_is_latin' => q[0],
'unzip' => q[/usr/bin/unzip],
'urllist' => [q[http://ftp.nara.wide.ad.jp/pub/CPAN/]],
'wget' => q[/usr/bin/wget],
};
1;
__END__
しかーっし!
まだ戦いは終わっていなかった。
なんだかモジュールが足りないらしい。
perl Makefile.PL
Warning: prerequisite Apache::Reload 0 not found.
Warning: prerequisite Apache::Request 0 not found.
Warning: prerequisite Digest::SHA1 0 not found.
Warning: prerequisite Template 0 not found.
Writing Makefile for Sledge
まず、きちんとインストールされてるか確認しろ、ということらしい。
$find `perl -e 'print "@INC"'` -name 'Template.pm' -print
/usr/local/share/perl/5.8.8/HTML/Template.pm
/usr/share/perl5/Debconf/Template.pm
find: /usr/local/lib/site_perl: No such file or directory
./opt/Sledge-1.11/blib/lib/Sledge/Template.pm
./opt/Sledge-1.11/lib/Sledge/Template.pm
find: ./.cpan/build/Time-HiRes-1.9715: Permission denied
./.cpan/build/Template-Toolkit-2.20/blib/lib/Template.pm
./.cpan/build/Template-Toolkit-2.20/lib/Template.pm
./.cpan/build/HTML-Template-2.9/Template.pm
find: ./.cpan/build/HTML-Template-2.9/blib/temp_cache_dir: Permission
denied
./.cpan/build/HTML-Template-2.9/blib/lib/HTML/Template.pm
HTML/Template.pmとかは違うらしい。で、Template-Toolkit???/Template.pmがそれらしいんだけど、.cpan/buildにあるだけだと、インストールが完了していない。
なんとかいんすとーるを試みて(sudo perl -MCPAN -e 'install Template')も、エラーがいっぱいでて困る。今のところPerlを追える気がしない。
とりあえず、なんとなく NO! で逃げてみた。
Do you want to build the XS Stash module? [y] n
続いて、Digestを入れた。が、SHA1が入らない。。。
エラーを眺めると、ななだかヘッダファイルが足りないっぽい。ubuntuのパッケージマネージャでlibcrypt11-devをインストール。SHA1も入った。
$ sudo perl -MCPAN -e 'install Digest::SHA1'
Apache::なんとか、はapache1.3系が必要らしいのでパッケージマネージャは使えない(今のubuntuでは、apache1.3は古くて使えないフ
ラグがたっているらしい)
apache_1.3.41.tar.gzとmod_perl-1.0-current.tar.gz(1.30)をダウンロードしてきてインストール。
いきなりECHOがこわれているといわれたので、ちょいちょいと対処
$ rm -f /bin/sh
$ ln -s /bin/bash /bin/sh
apacheのインストール
$ ./configure --enable-module=so --enable-module=proxy --enable-
module=rewrite
$ sudo make
$ sudo make install
mod_perlのインストール
makeでエラーが出た(/usr/bin/ld: cannot find -lperl)ので、パッケージマネージャでlibperl-devを入れた。
$ perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache/bin/apxs
EVERYTHING=1
$ make
$ sudo make install
さて、再びSledgeのインストールに戻る。Apache::Requestが無いって言われているから、インストールする。httpdとかapxsの場所とかを
聞かれるたで、/usr/local/apache/binの下の奴を教えてやった。
$ sudo perl -MCPAN -e 'install Apache::Request'
で、だ。やっときた。が!
$ perl Makefile.PL
Writing Makefile for Sledge
$ make
$ make test
...
Files=44, Tests=212, 3 wallclock secs ( 0.08 usr 0.03 sys + 2.26
cusr 0.19 csys = 2.56 CPU)
Result: FAIL
Failed 8/44 test programs. 4/212 subtests failed.
make: *** [test_dynamic] エラー 255
落ち着いて、テストのログにあるエラーを眺める。
DBI.pmが無い。Encode/compat.pmが無い。
$ sudo perl -MCPAN -e 'install DBI'
$ sudo perl -MCPAN -e 'install Encode'
$ sudo perl -MCPAN -e 'install Encode::compat'
あとは、これだけかな? Can't locate object method "__triggers" via package "Test::Pages" at t/11_hooks.t line 9
これか!!
wget http://search.cpan.org/CPAN/authors/id/M/MI/MIYAGAWA/Class-
Trigger-0.10.tar.gz
$ tar xzf Class-Trigger-0.10.tar.gz
$ cd Class-Trigger-0.10
$ perl Makefile.PL
$ make
$ make test
$ sudo make install
すると、ついにきた。
$ make test
...
All tests successful.
Files=44, Tests=222, 3 wallclock secs ( 0.08 usr 0.02 sys + 2.40
cusr 0.20 csys = 2.70 CPU)
Result: PASS
$ sudo make install
...
Writing /usr/local/lib/perl/5.8.8/auto/Sledge/.packlist
Appending installation info to
/usr/local/lib/perl/5.8.8/perllocal.pod
とりあえず、ここまでで勘弁して野郎。
動くかなぁ