CPANに若者が殺到している件について
あ、タイトルに釣られてココ来ちゃった人すいません、たいした事書いてないです。このエントリーは、突発的に perl をやりたくなり、Macbook で CPAN を便利に使えるようにした、単なる作業備忘録です。ホッテントリメーカーを使ってみたかっただけなんです。
以下、個人的な備忘録。
まず、port を使って必要そうなものを入れておく
Users/kenkitii% sudo port install gnupg ncftp wget libxml libxml2
CPAN で 履歴や補完が出来るようにする
cpan> install Bundle::CPAN cpan> reload CPAN cpan> o conf (ここでTABを押す) applypatch commandnumber_in_prompt gzip make_arg patch tar_verbosity auto_commit commands_quote help make_install_arg prefer_installer term_is_latin (・・・以下略) cpan> ls DAN(ここでTABを押す) DAN DANB DANBOL DANBORN DANIELR DANISH DANK DANMOORE DANN DANPEDER DANT DANAL DANBERR DANBOO DANIEL DANIELTWC DANJOU DANKOGAI DANMQ DANNY DANSCH DANW
CPANモジュールのアップグレード
CPANの対話シェルにて upgrade コマンドで出来ますが、一括でアップグレードする場合、いちいち[Y/n]に答えなくていいように設定しときます。
cpan> o conf prerequisites_policy follow cpan> o conf commit
CPANモジュールのインストール済み一覧とかアンインストールとか
以下のエイリアスを .zshrc に追加しとくと便利。
alias cpan-installed='find `perl -e "print \"@INC\""` -name "*.pm" -print' alias cpan-uninstall='sudo perl -MExtUtils::Install -MExtUtils::Installed -e "unshift@ARGV,new ExtUtils::Installed;sub a{\@ARGV};uninstall((eval{a->[0]->packlist(a->[1])}||do{require CPAN;a->[0]->packlist(CPAN::Shell->expandany(a->[1])->distribution->base_id=~m/(.*)-[^-]+$/)})->packlist_file,1,a->[2])"'
使い方とか
Users/kenkitii% cpan-installed | grep LWP /opt/local/lib/perl5/site_perl/5.8.8/Bundle/LWP.pm /opt/local/lib/perl5/site_perl/5.8.8/LWP/Authen/Basic.pm /opt/local/lib/perl5/site_perl/5.8.8/LWP/Authen/Digest.pm (・・・以下略) /Users/kenkitii% cpan-uninstall Acme::Hyde unlink /opt/local/lib/perl5/site_perl/5.8.8/Acme/Hyde.pm unlink /opt/local/share/man/man3/Acme::Hyde.3 unlink /opt/local/lib/perl5/site_perl/5.8.8/darwin-2level/auto/Acme/Hyde/.packlist
minicpan を入れる
Leopard に minicpan をいれようとすると、
Can't locate File/HomeDir.pm in @INC(以下略)
と言われちゃうので、以下の手順で。
/Users/kenkitii% sudo cpan cpan> force install Mac::Carbon cpan> install File::HomeDir cpan> install CPAN::mini
ミラーを作るのはかなり時間がかかるので、ダウンロード中は風呂にでも入ってきましょう。
/Users/kenkitii% minicpan -r http://ftp.kddlabs.co.jp/CPAN/ -l ~/minicpan /Users/kenkitii% du -s ~/minicpan 875M minicpan
ミラーが終わったら、cpan の urllist を書き換えます。
cpan> o conf urllist unshift file:///Users/kenkitii/minicpan cpan> o conf commit
cron でミラーを最新に
Leopard で crontab -e すると vi 終了後に
crontab: temp file must be edited in place
と出て、編集内容が反映されません。ググってみると原因は、MacOS には vi が入っておらず、代わりに vim が起動してバックアップファイルを作ってしまうことらしいのですが、vim の設定とかよくわからないので
/Users/kenkitii% EDITOR=emacs crontab -e 0 0 * * * /opt/local/bin/minicpan -r http://ftp.kddlabs.co.jp/CPAN/ -l /Users/kenkitii/minicpan
としました。