2007年07月21日
何回やっても何回やってもCPAN::Miniが使えないよ
タイトルはネタなので使えるようにした話です。
仕事場のサーバ群が内から外への接続が禁じられているので、Perlモジュールの設定がしたくてもcpanスクリプトが使えません。
というかwgetすら使えないので、いつも泣きながら、手動で依存解決しつつ1つ1つモジュールアップしてインストールという作業をし、cpanさえあれば2、3分で終わらせられる作業に何時間も費やしたりしていました。
そのボヤキをtwitterでつぶやいたら、CPAN::Miniというモジュールを使ってローカルにCPANレポジトリを作ってしまう方法をすぐさま教えてもらいました。
その時はとにかく環境を急いで作るのに精一杯でかつ環境できかけていたので、手を出してなかったのですが、今回サービスインしてちょびっとだけ余裕できたので、試してみました。
使い方なんかはこの辺から知識を得まして、まず自分PCのVMWare上で
> minicpan -r http://ftp.cpan.jp/ -l ~/minicpan
してCPANレポジトリを作成し、それをサーバにアップして、そのレポジトリをデフォルトのCPANレポジトリに指定してサーバのcpanスクリプトを初期化しました。
で、うまく動いてるか試そうと、手始めにEncodeモジュールのアップデートでもしてやるかと
cpan> install Encode
とかやってみたんだけど、全く動かない。
「Encodeモジュールって何?食べられるの?」とか聞かれる。
他のモジュールでも試してみたけど、全く同じ。
cpan> reload index
とかしてみてもダメ。
何回やっても何をやってもCPAN::Miniが使えないよ...という事で途方にくれてた。
でも、よく見ると、インデックス再構築時に出てるエラーとか見てると、
Fetching with LWP:
file:///.../cpan/modules/02packages.details.txt.gz
LWP failed with code[404] message[File `/.../cpan/modules/02packages.details.txt.gz' does not exist]
...
Fetching with LWP:
file:///.../cpan/modules/03modlist.data.gz
LWP failed with code[404] message[File `/.../cpan/modules/03modlist.data.gz' does not exist]
とかってエラーが出てる。
実際にローカルCPANレポジトリのディレクトリ内を覗いてみると、「authors」というディレクトリしかなくて、「modules」というディレクトリがない。
もしやと思って、ネット上のCPANレポジトリから、上でないと言われてる「02packages.details.txt.gz」と「03modlist.data.gz」をダウンロードしてきて、さらにローカルCPANレポジトリディレクトリ内に「modules」ディレクトリを切り、そこにこの2ファイルを置いてみた。
その上で
cpan> reload index cpan> install Encode
とかしてやると...動いた!動いたよママン!
とか言う感じで、何とか動かせるようになりました。
cpanスクリプトの動作原理とか判らないので、挙動からの飽くまで想像だけど、CPAN::Miniは飽くまでモジュールインデックスはオンライン時にネット上のCPANレポジトリから作成しつつ、モジュール本体のアーカイブのみオフライン時にローカルから使う、というユースケースのために作られているっぽい。
なのでモジュールインデックス作成に必要な「modules」以下のファイルは落としてこず、結果完全オフラインの環境ではそのままでは動かないのかな...とか思った。
昨日のメールが送付しましたが、今までご確認を待っています。もし、都合がよければねねさんの電話番号をメールで教えて頂けませんでしょうか。
![[ここギコ!]](http://kokogiko.net/logo.png)



・「定義できない」とのたまうものを自説根拠の説明の中で延々と使う不誠実(笑)(むにゅう!)
・絵文字標準化でのキャリア批判に思うこと(kokogiko)
・文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択(むにゅう!)
・絵文字標準化でのキャリア批判に思うこと(ひゅ〜)
・絵文字標準化でのキャリア批判に思うこと(kokogiko)
・文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択(kokogiko)
・文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択(むにゅう!)
・文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択(むにゅう!)
・文化は変わっていくのは当たり前だからこそ、今問われているのはリアルタイムの選択(むにゅう!)