さくらインターネットでlocal::libを使ってCPAN環境を整える

読了まで:約3分


概要: さくらインターネットで​ local::lib を​使う


だい​ぶ前の​話に​なりますが、local::libを​使って​ CPAN module を​インストールする​環境を​ さくらインターネットに​整えたので、​その​ときの​ことを​思い出しながら​まとめてみるよ!

0. 参考

1. local::libを​落と​してくる

local::libは​ CPAN に​あるので、

$ 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 や​ 無貌断片 で​使用している

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 環境を​整える​話でした。

#FIXME

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。