2005/03/19(土)CPANを使ってみる

2005/03/19 5:00 PC(Linux)
spamassassinやらrazorのソース導入で、aptでperlを管理することに限界を感じてきたので一発CPANを使ってみようかと思い立った。

[1]CPANの基本設定
CPANをインストール
# perl -MCPAN -e shell
インストール手順は盲目的に http://www.kuri3.net/modules/bwiki/?SecureMailに従うことにする。
初回起動なので設定を聞かれので、全部yes,Enter連発で通すが以下2箇所だけ変更。
Parameters for the 'make install' command?
Typical frequently used setting:

    UNINST=1         to always uninstall potentially conflicting files

Your choice:  [] UNINST=1
(1) <a HREF="ftp://ftp.dti.ad.jp/pub/lang/CPAN/">ftp://ftp.dti.ad.jp/pub/lang/CPAN/</a>
(2) <a HREF="ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/">ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/</a>
(3) <a HREF="ftp://ftp.kddilabs.jp/CPAN/">ftp://ftp.kddilabs.jp/CPAN/</a>
(4) <a HREF="ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/">ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/</a>
(5) <a HREF="ftp://ftp.u-aizu.ac.jp/pub/CPAN">ftp://ftp.u-aizu.ac.jp/pub/CPAN</a>
(6)     <a HREF="http://ftp.cpan.jp/" TARGET=_top>http://ftp.cpan.jp/</a>
Select as many URLs as you like (by number),
put them on one line, separated by blanks, e.g. '1 4 5' [] 2 4 5 6
む、ftpにアクセスできない。そういえば、このマシンだとPassive FTPに設定しないとFTPは動いてくれないのだった。

[2]passive FTPに設定する
CPAN上で動く、LWPやNet::FTPでpassive FTPを動かすようにするには環境変数FTP_PASSIVEの設定が必要。
環境変数FTP_PASSIVE=1をセット。とりあえず、/home/urara/.bash_profileに書くことにする。
19a20,21
> export FTP_PASSIVE=1
>
CPANの起動時に設定したいなら、
# perl -MCPAN -e '$ENV{FTP_PASSIVE} = 1; shell'
その他、passive FTP関係の設定を詰めておく。

wgetをpassive FTPで使うために、/etc/wgetrcのpassive_ftpオプション変更
42c42
< #passive_ftp = off
---
> passive_ftp = on
lynxをpassive FTPで使うために、/etc/lynx.cfgのFTP_PASSIVEオプション変更
3154c3154
< #FTP_PASSIVE:FALSE
---
> FTP_PASSIVE:TRUE
ftpコマンドは-pオプションをつけるか、pftpコマンドで起動すればpassive FTPになるようだ。

今のところ必要ではないが、CPAN上でconfをいじってやる。
cpan> o conf ftp /usr/bin/pftp
[3]qmail-scannerに必要なモジュールをインストール
さて、 http://www.kuri3.net/modules/bwiki/?SecureMailに従って必要なモジュールを全部つっこむことにする。で、あれこれインストール。

ところが、
BerkeleyDB,IP::Country::Fast,Pod::Usage
がうまく入らない…… うーん、

BerkeleyDBインストール時のエラー
# : ./not_there/__db_lock.share: そのようなファイルやディレクトリはありません
t/env..........FAILED test 10
と思ったら、後日やり直したところIP::Country::Fast,Pod::Usageに関してはきちんと入った。

ちゃんと入らない原因は、
(1)perl本体もCPANで入れなければいけない
(2)少なくともモジュール類はCPANで全部入れ直さなきゃいけない
(3)単に一部パッケージの依存関係が解決していない
どれだろうか。

CPANだと、/usr/local/以下に入ってしまうのでその関係だろうか(debianだとデフォルトは/usr/bin/perlなどになる)。時間もないのでここで断念。Perlは考えどこだなあ。あっちこっちのディレクトリに分散しちゃってるよ……

[参考サイト]
http://www.fuji.sakura.ne.jp/~yada/talk2000/perl.shtml
http://homepage3.nifty.com/hippo2000/perltips/CPAN.htm
http://tech.bayashi.net/svr/doc/wget.html
http://x68000.q-e-d.net/~68user/net/ext-module.html
OK キャンセル 確認 その他