くれすのPerl日記 このページをアンテナに追加 RSSフィード

この日記の方針。

  1. この日記では、超初心者向けの内容は取り扱っておりません。モジュールの利用など、実践的な内容が中心となります。
  2. ここに貼られるソースは、基本的にそのままでは動かないものばかりです。各自の責任でご利用ください。
  3. 内容が間違っていることがあります。その際はご指摘いただけるとありがたいです。「検証してみたら違う結果が出た」などの報告も大歓迎です。
  4. perl -e die

2006-08-25 (Fri)いろいろ欲しいものがある

[] CPANローカルインストール 23:50  CPANでローカルインストール - くれすのPerl日記 を含むブックマーク はてなブックマーク -  CPANでローカルインストール - くれすのPerl日記  CPANでローカルインストール - くれすのPerl日記 のブックマークコメント

レンタルサーバでArchive::Zipが使いたくて試行錯誤。CPANって、インストール時にroot権限がないとダメなのかと思ったが、実はそうでもないらしい。

CPANの設定時*1に、PREFIXを指定してやる。ご親切にヒントまで出てました。

Parameters for the 'perl Makefile.PL' command?
Typical frequently used settings:

    PREFIX=~/perl       non-root users (please see manual for more hints)

Your choice:  []

ここで、

PREFIX=~/perl

と入れてやる。すると、/home/(user)/perl 以下にすべてインストールされる。これで必要なモジュールが使えるようになる。

但し、パスが通っていないのでそのままでは使いにくい。プログラムごとに

use lib qw( ~/perl/lib/perl5/site_perl/5.8.4 );

とかやるのもどうかと思うわけで。

↑だとうまく行きません。フルパスで入れてください。use lib qw( /home/user/perl/lib/perl5/site_perl/5.8.4 )

@INCってどうやって変えるの?

要するに、@INCの中身を変更してやれれば良いわけで。

KMsWiki Perl/@INC
http://www.xdelta.net/wiki/Perl/@INC.html

・・・環境変数で設定できるらしい。初めて知ったよ。

ここで設定を書き換えても、CGIから利用する環境変数は書き換わりません。.htaccessのSetEnvとか必要です。

そんなわけで、.bashrc*2に書き込んでみます。

# .bashrc

export PERL5LIB=/home/cre/perl/lib/perl5/site_perl/5.8.4:/home/cre/perl/lib/perl5/5.8.4

PATHと一緒でカンマ区切り。ログインシェルCSH系なら勿論setenvです。ログインシェルに合わせて。

動作確認

ちゃんと動いているかどうか試してみました。

$ vi .bashrc
$ source .bashrc
$ perl -e 'use Archive::Zip; print $Archive::Zip::VERSION;'
1.16

大丈夫みたいですね。ちゃんと動いてます。

perldoc

環境変数 PERL5LIB を設定しておくと、perldoc もちゃんと見られるようになります。

perldoc Archive::Zip

これも問題なし。

今さら思うこと

モジュールインストールのために管理者にお願いする必要ないよね・・・これだと。GDとか複雑なモジュールも入れられるのかな?Archive::Zipも十分複雑だとは思うが。

追記

環境変数PERL5LIBの設定だけでは、CGI動作時のモジュールパス指定は出来ない。やっぱり、use lib qw( ) なのかなあ。一行くらい入れても良いけど。

SetEnvが使えれば話は早かったのだが、流石にそうも行かなかった。

*1:ほとんど読み飛ばしてEnter連打になっちゃうだろうケド。

*2ログインシェルbashなのです。FreeBSDユーザなのにね。補完機能の強力さゆえに手放せない。

gammegamme2007/12/03 14:32レンタルサーバで使いたいマイナーなライブラリがるんだけどなーどうしようかなー、と思っていたところ、こちらに辿りつきました。ふむふむなるほど!試してみようと思います。

情報&人柱(^_^;)、ありがとうございました。

トラックバック - http://perl.g.hatena.ne.jp/Cress/20060825