読者です 読者をやめる 読者になる 読者になる

Persistence

続けることに意味がある。

CPANモジュールが使えるようになるまでのメモ

Perl さくらインターネット

Perl初心者がレンタルサーバCPAN使えるようになるまでのメモ。

 

正直、最初の設定の方は適当にいじってたので何が正しいか分からないので、手順の参考にしたサイトをメモしておきます。

 

■共有レンタルサーバでCPAN導入を簡単に行うツールを作成しました

 

この通りやってみました。ええ、ぶっちゃけ手抜きですよね。

 

この時点で、代表的なモジュールは使えるようになったが、「use モジュール名」の時点でエラーが出るモジュールもありました。そのエラーログが以下の通り。※分かりやすいよう改行しています

 

---------

 

Can't locate モジュール名 in @INC (@INC contains:

/usr/local/lib/perl5/5.8.9/BSDPAN

/usr/local/lib/perl5/site_perl/5.8.9/mach

/usr/local/lib/perl5/site_perl/5.8.9

/usr/local/lib/perl5/5.8.9/mach

/usr/local/lib/perl5/5.8.9 .) at test2.cgi line 5.

BEGIN failed--compilation aborted at test2.cgi line 5.

[Mon Aug 29 12:42:38 2011] [error] [client xxx] Premature end of script headers:

/home/xxx/www/test2.cgi

 

---------

 

@INCという配列の中に、CPANのパスが設定されています。この設定は、レンタルサーバの共通のモジュールパスを指しています。今回、インストールしたのは、/home/ユーザ名/local/lib/perl5/の中なので、それを読み込めるよう設定します。

 

設定方法は以下の3つの方法があります。

 

 

  • @inc配列にパスを追加する

 

 

 

 

  • 実行モジュールに「use lib 'パス'」でパスを追加する

 

 

設定方法は、以下のサイトに詳しく書いてあります。

 

■一般ユーザ環境におけるCPANモジュールの使い方

 

詳しく書いてあるのですが・・・、一つ目の方法はよく分からず、二つ目の方法も「setenv」コマンドで環境変数を確認したら既にパスが入っていました。

 

残る三つ目の方法も、試してみましたが上手くいかず、悩んでいたら環境変数の中に存在しないディレクトリのパスがあることに気付きました。

 

/home/ユーザ名/local/lib/perl5/site_perl

 

「site_perl」って何だ??と思ってググってみたら、どうやら標準ではないモジュールはここにインストールされることがあるという事が分かりました。

 

■site_perl(Perl)

 

ということで、「site_perl」フォルダを作成し、モジュールを再度インストールし、実行モジュールに「use lib '/home/ユーザ名/local/lib/perl5/'」を書くことで使えるようになりました。

 

色々と謎は残りますが、同じように困っている人の助けになれば幸いです。

 

 

広告を非表示にする