Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 環境構築

さくらインターネットサーバでの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で開いて末尾に追加された項目を消してあげます。

  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。