Home> 日々 > CPANで自分のホームディレクトリ内にモジュールをインストール

CPANで自分のホームディレクトリ内にモジュールをインストール

  • 2005年11月18日 22:44
  • 日々

さくらインターネットなレンタルサーバ環境(ていうかここ)に、表題のような環境を作ったメモです。

~/perl/lib 以下にインストールすることとして以下説明。

まずは perl -MCPAN -e shell して、設定を以下のように。(ここでは都合上改行してますが、実際は1行で)


o conf makepl_arg "LIB=~/perl/lib PREFIX=~/perl/lib INSTALLMAN1DIR=~/perl/man/man1
INSTALLMAN3DIR=~/perl/man/man3"

設定したっぽいechoが返ってくるので、 o conf commit で設定ファイルへ書き込み。
これで以後は install *** したとき、そこにモジュールが展開されるようになる。

こうして入れたモジュールを実際に使うときは、PERL5LIB という環境変数にパスを追加すればOK。
.cshrc なりに以下を追加。


setenv PERL5LIB /home/masawo/perl/lib

#使うコードごとに use lib "$ENV{HOME}/myperl/lib"; とかしてもOKだけど、こっちの方が楽。


参考:
The CPAN Frequently Asked Questions
UNIX (非root) でのインストールノート

(2006/07/07追記)
以下でもう少し詳しい説明がされていますので、こちらもぜひご参考あれ。
一般ユーザ環境におけるCPANモジュールの使い方 - iandeth.

トラックバック:2

TrackBack URL for this entry
http://wo.skr.jp/mt5/mt-tb.cgi/55
Listed below are links to weblogs that reference
CPANで自分のホームディレクトリ内にモジュールをインストール from wolog
さくらインターネットのホームディレクトリにCPANのモジュールをインストールする from crawler.jp::技術 2005-12-27 (火) 00:13
いまさらですが、このブログはさくらインターネットのホスティングサービスを利用して... 続きを読む
MTAws 3.0 from HagyLog 2009-09-21 (月) 23:48
5月8日と9日にアマゾンから、Amazon アソシエイト Web サービスの名称... 続きを読む

コメント:7

2006年6月21日 11:47 返信

私もさくらサーバーを借りているのですが、
[o conf ?] のあたりは
うまくいきましたが、

[setenv PERL5LIB /home/user/plib]を.cshrcの一番下に記述しても、
[use lib qw(/home/user/plib);]
を書かなければエラーになってしまいます。

記述するのは.cshrcのみでOKなのでしょうか。

2006年6月21日 11:52 返信

私もさくらサーバーを借りているのですが、
[o conf ?] のあたりは
うまくいきましたが、

[setenv PERL5LIB /home/user/plib]を.cshrcの一番下に記述しても、
[use lib qw(/home/user/plib);]
を書かなければエラーになってしまいます。

記述するのは.cshrcのみでOKなのでしょうか。

2006年6月21日 11:54 返信

私もさくらサーバーを借りているのですが、
すみませんちょっと接続が
悪く、3回も入力してしまっております。



//////////////////////



[o conf ?] のあたりは
うまくいきましたが、

[setenv PERL5LIB /home/user/plib]を.cshrcの一番下に記述しても、
[use lib qw(/home/user/plib);]
を書かなければエラーになってしまいます。

記述するのは.cshrcのみでOKなのでしょうか。

2006年6月21日 16:02 返信

cshを使っている場合に記述するのは.cshrcですが、お使いのシェルが違えば設定ファイルが変わってくるとおもいます。
"setenv PERL5LIB /home/user/plib" などと設定してみてもだめでしょうか?
setenvを使わない場合は "export ?" になると思います。
ちなみに自分の環境(ここ)は「さくらのレンタルサーバ スタンダード」で、確かシェルは初めからcshだったと記憶しています。

2006年6月22日 10:40 返信

ありがとうございます。
私もさくらサーバースタンダードプランです。

.cshrcへの記述内容は問題なさそうなのです。
ですが、直接telnet上で
setenv PERL5LIB ?を設定し、
続けてtelnet上でsetenvだけを入力して確認したところ、PERL5LIBが間違いなく設定されており、さらに
perl -e '(print join("\n",@INC));'
をtelnetで確認しても問題なく設定されておりました。

ところがcgiファイルでprint join("\n",@INC);を表示させると、
/usr/local/lib/perl5/site_perl/5.8.4/mach
などの初期設定のパスはちゃんと表示されますが、
任意で設定したPERL5LIBへのパスが表示されないのです。
それでもtelnetから同コマンドで見るとちゃんと設定されていました。

.cshrcに記述して書き換えた後に
もしかして何かperl側の設定を更新したりする必要とかひょっとしてあるのでしょうか。
たびたびすみませんが、ぜひ教えてください。

2006年6月22日 19:23 返信

う、CGIで動かすのは試していませんでした。

.htaccess に SetEnv PERL5LIB /home/user/perl/lib とかすればいいのかなと思っていましたが、
http://www.apache.jp/docs/mod/mod_env.html#setenv
どうも当レンタルサーバではSetEnvが効かないみたいです。
なのでやはり面倒ですが、スクリプト内で use lib なりするしかないかも…。

RubyやPythonでも同様な状況のようです。
http://www.emptypage.jp/notes/pymods-on-sakura.html
http://www.machu.jp/diary/20040806.html

2006年6月23日 11:10 返信

やはりuse libになりそうですね。

ラクダ本等を調べましたところ、必ずしもuse lib以外の方法を推奨していないっぽいですので、
install用として環境変数に設定し、使用時はuse libで頑張ってみます。

ありがとうございました!!

Comment Form

Index of all entries

Home> 日々 > CPANで自分のホームディレクトリ内にモジュールをインストール

カテゴリ
アーカイブ
ウェブページ
購読
OpenID

OpenIDに対応しています
Accepted OpenID
OpenIDについて

Powerd By

Return to page top