CPAN の ダウンロード先(URL リスト)を変更する方法

Sun Fire V20z を Webサーバ用に購入」や「Apache bench 対決 : Xeon vs Opteron」の記事で書いたように、本業で使っている web サーバは Sun Fire V20z というサーバなんですが、Dell の Xeon サーバとかに比べてベンチマークで比較する数値以上に実務アプリ(Web + DB サーバアプリケーション)の動作がすこぶる機敏です。

ってな訳で、再びサーバ増設で Sun Fire V20z を購入してインストール作業をしているのですが、CPAN のインストールで苦戦中。どうも CPAN サーバによって MD5 - checksums で転けてしまうんです。具体的には、

CPAN::Distribution::MD5_check_file('CPAN::Distribution=HASH・・・ホゲホゲ
と表示されてインストールが中断されるモジュールが多発・・・orz
- スポンサーリンク -

そこで、o conf コマンドで urllist の値を変更してCPAN の ダウンロード先(URL リスト)を変更しながらインストールを進めることにした備忘録です。

CPAN の設定で変更の可能性がある項目とすれば、「 ftp_proxy , http_proxy , urllist 」の3つくらいでしょう。、「 ftp_proxy , http_proxy 」の値を変更するには次のようにします。

cpan
cpan> o conf http_proxy http://プロキシ名:ポート番号
cpan> o conf ftp_proxy http://プロキシ名:ポート番号
cpan> o conf commit

「 urllist 」の値を変更するには、まず現在の設定値を表示させます。

cpan> o conf urllist
  urllist
    ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
    http://ftp.nara.wide.ad.jp/pub/CPAN/
    http://ftp.cpan.jp/
Type 'o conf' to view configuration edit options

値をURL リストから削除したい場合は、
cpan> o conf
cpan> o conf urllist pop 削除したい url名
cpan> o conf commit

値をURL リストに追加したい場合は、
cpan> o conf
cpan> o conf urllist push 削除したい url名
cpan> o conf commit

です。URL リスト は o conf urllist で表示される順番でデータ取得を試みます。どうも僕の経験からすると、 ***.jp 系のサーバは落ちていることとかよくあるので、http://www.cpan.org/SITES.html から適当な場所を探して urllist に追加するといいかんじです。

またネットワーク環境によっては、http しか通さない場合もあるので、その場合に urllist に ftp のサーバを登録してしまうとタイムアウト待ちが発生してモジュールインストールが激しく遅くなるので注意が必要です。
ちなみに、もっと Hack 的な変更方法として「 /usr/local/lib/perl5/5.x.x/CPAN/Config.pm 」を直接変更してしまう技もあります。

- スポンサーリンク -