ブログトップ 記事一覧 ログイン 無料ブログ開設

サンプルコードによるPerl入門 〜 伝統と信頼のPerlを学ぼう 〜

2009-03-14

さくらインターネットサーバでのCPAN導入を完全に手順化して見た

(この記事の内容は古くなっています、現在はcpanmを使ってモジュールをローカルにインストールするのが簡単でしょう。cpanmによるローカル環境構築を見てください。)

 otsuneさんのところでさくらインターネットのレンタルサーバでCPANを使用する方法が紹介されているのですが、一部手作業が発生するので、すべてコピペで実行できるように手順化してみました。

さくらインターネットサーバcpan導入手順

# ライブラリのためのディレクトリの作成
mkdir -p ~/local

# CPANの設定ファイルを作成
echo no | cpan

# cpanコマンドの設定ファイルMyConfig.pmの書き換え
# ( __END__の行まで一気にコピーして実行してください。とまった場合はEnter )
perl - ~/.cpan/CPAN/MyConfig.pm > ~/.cpan/CPAN/MyConfig.pm.edit
while(<>){
    if( /^\s*\};/ ){
        print q#  'make_install_arg' => qq[SITEPREFIX=$ENV{HOME}/local],#, "\n",
              q#  'makepl_arg' => qq[INSTALLDIRS=site LIB=$ENV{HOME}/local/lib/perl5 PREFIX=$ENV{HOME}/local],#, "\n",
              q#  'mbuildpl_arg' => qq[./Build --install_base $ENV{HOME}/local],#, "\n",
              q#  'urllist' => [q[ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/], q[ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/]],#, "\n",
              q#};#, "\n";
    }
    elsif( !/^\s*'make_install_arg'/ &&
        !/^\s*'makepl_arg'/ &&
        !/^\s*'mbuildpl_arg'/ &&
        !/^\s*'urllist'/
    )
    {
        print;
    }
}
__END__


# 編集したファイルで現在の設定ファイルを上書き
mv -f ~/.cpan/CPAN/MyConfig.pm.edit ~/.cpan/CPAN/MyConfig.pm

# Perlのライブラリの場所の設定
echo 'setenv PATH $HOME/local/bin:$PATH' >> ~/.cshrc
echo 'setenv PERL5LIB $HOME/local/lib/perl5:$HOME/local/lib/perl5/site_perl' >> ~/.cshrc

# BSDPANのエラーを回避
echo 'setenv PKG_DBDIR $HOME/local/var/db/pkg' >> ~/.cshrc
echo 'setenv PORT_DBDIR $HOME/local/var/db/pkg' >> ~/.cshrc
echo 'setenv INSTALL_AS_USER >> ~/.cshrc'
echo 'setenv LD_LIBRARY_PATH $HOME/local/lib' >> ~/.cshrc
mkdir -p ~/local/var/db/pkg


# .cshrcの内容を環境変数に反映
source ~/.cshrc

# cpanの最新版へのアップデート
cpan -i Bundle::CPAN

# インストールが始まり依存するモジュールもインストールするか聞かれるので、Enterを押す。( ちょっと長い )

 これでcpanが使用できるようになります。

なんらかの事情で作業をやり直したい場合

 この作業でいじっているのは、~/local というディレクトリと~/.cpanというディレクトリと、cshの設定ファイルである、~/.cshrcというファイルです。

 作業を最初からやり直したい場合は、 ~/local と ~/.cpanディレクトリを削除します。

 また、~/.cshrc をviで開いて末尾に追加された項目を消してあげます。

otsuneotsune 2009/03/07 17:48 いまならlocal::libでやったほうが楽かもしれません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証