概要: さくらインターネットで local::lib を使う
だいぶ前の話になりますが、local::lib
を使って CPAN module をインストールする環境を
さくらインターネットに整えたので、そのときのことを思い出しながらまとめてみるよ!
0. 参考
http://blog.hide-k.net/archives/2009/02/locallibrootcpa.phplocal::lib を使った非 root での CPAN 環境構築
1. local::lib
を落としてくる
local::lib
は CPAN にあるので、
- CPAN の local::lib のページ の
Download
リンクをコピーして、 端末上で、
$ cd ~/local/src $ wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.004009.tar.gz
でlocal::lib
を取ってくる
2. local::lib
を解凍する
$ tar zxvf local-lib-1.004009.tar.gz
3. BSDPAN の設定をする
僕のところではこんな感じの設定をしました。
setenv PKG_DBDIR ~/db/pkg setenv PORT_DBDIR ~/db/pkg setenv INSTALL_AS_USER
4. CPAN の設定をする
hidek さんのところの記事によると、どうも先に CPAN の設定をしないとlocal::lib
のインストールがうまくいかないそうなので、
とりあえず shell で
$ cpan ... cpan> o conf commit cpan> exit
という感じで CPAN の設定を済ませます。
このときには CPAN モジュールのインストールパスなんかは設定しません。
あとUNINST=1
とか--uninst=1
を設定すると、どうもシステムに入ってるモジュールを消そうとして失敗する、
という動作をしだすので、これらのオプションは設定しないほうが良いと思います。
5. local::lib
をインストールする
ようやくlocal::lib
をインストールします。
僕の環境の場合、~/local/perl5
が CPAN module をインストールするルートディレクトリなので、
$ cd ~/local/src/local-lib-local-lib-1.004009 $ perl Makefile.PL --bootstrap=/home/nyarla/local/perl5
という感じでMakefile.PL
を実行。あとは
$ make $ make test $ make install
します。
6. 環境変数を設定
で、次に環境変数を設定します。
hidek さんの所ではecho
とか使って自動的にシェルの設定ファイルに書き出しとかしてますが、
僕の環境ではどうもうまくいかなかったので、手動で、
$ perl -I$HOME/local/perl5 -Mlocal::lib=$HOME/local/perl5
を実行して、出力された環境変数の設定部分をシェルの設定ファイル(僕の環境の場合 csh なので~/.cshrc
)
にコピペしました。
7. CPAN を update
これでようやく CPAN module をインストールできる環境が整ったので、
$ cpan ... cpan> install Bundle::CPAN
して CPAN をアップデートします。
まあこれは大抵のモジュールはインストールされるはずなので、細かいところは省略。
8. CPAN module をインストール
んで、あとは自由に CPAN module をインストールできます。
僕の場合、この Blog や 無貌断片 で使用している
- plasxom が使用するモジュールなんかを入れました。
9. Perl script で使用するには
で、肝心の Perl script から各モジュールを呼び出すには、
#!/usr/bin/perl use strict; use warnings; use lib '/home/nyarla/local/lib/perl5/lib'; use local::lib '~/local/perl5';
という感じで呼び出します。
ちなみにさくらインターネットでは CGI は suEXEC 環境で動いてるので、
.htaccess
とかの設定ファイルで設定した環境変数が CGI スクリプト内で有効になりませんが、
suEXEC 環境でない場合は、.htaccess
内でPERL5LIB
とか設定してやれば良いと思います。
10. 以上作業は終了。感想とか
まあ作業自体をしたのがだいぶ前(いつだったか覚えてない)ので細かいところはうろ覚えですが、 大体こんな感じで作業したと思います。
本当は作業してから作業ログを書こうと思ってたんですが、 疲れたしまた後にしようと思って延び延びになって今日になった次第。
ちなみに作業してたとき、環境変数を設定するところでちょっとつまづいてました。
あと使用感ですが、CPAN をダイレクトに設定して使ってたときよりも使いやすい感じです。
特にインストールされるディレクトリがバラけないのでそこら辺がスクリプトから扱いやすい感じ。
まあこれからレンタルサーバで CPAN 使う人は、local::lib
を使うと良いんじゃないでしょうか。
以上local::lib
を使って CPAN 環境を整える話でした。