日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Perl バイナリモジュールの追加 覚え書き

2009-06-22

Perl バイナリモジュールの追加 覚え書き

Perl 目次

・目次
 ・インストール
 ・
 ・ 
エラー
レンタルサーバーでエラー:さくら
仮想 OS内で再現することを確認
モジュールがインストールされていないことに起因する。
スクリプト実行
Can't locate Digest/SHA.pm in @INC (@INC contains: /home/username/lib/perl/ /usr/local/lib/perl5/5.8.8/BSDPAN
Can't locate loadable object for module Digest::SHA in @INC (@INC contains: /home/username

【結論】
足りないモジュールをインストールして
push(@INC, 'パス');
で追加する

サーバー会社サポートに追加してほしいと要望するのが一番楽で確実。
以下は、応急処置的な方法
Step1 まず共通の読み込みできるファイルを作ります。
これは、パス変更時に1回の修正で済ませることができるようにするためです。
(例)
push(@INC, "/home/username/local/perl/lib/perl5/site_perl/".sprintf("%vd", $^V).'/mach');
push(@INC, '/home/username/local/perl/lib/perl5/site_perl/5.8.9/mach');
注: perlがバージョンアップした場合のために上記のように変数と 定数固定の2つを用意する

   # UNIX    $ENV{HOME}
   # Windows $ENV{HOMEPATH}
は、apacheのconfで定義されていない場合があるので使用しない方が無難。
Step2
既存のスクリプトに上記のファイルを読み込むように設定します
require "上の内容のファイル";
Step3
cpanを実行して初期値を代入

cpanの初期設定でインストール先を指定します
(cpan初回起動時に表示されます)


If you don't understand this question, just press ENTER.

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=~/local/perl LIB=~/local/perl/lib/perl5/site_perl/5.8.9/mach

Parameters for the 'make install' command?
Typical frequently used setting:

    UNINST=1         to always uninstall potentially conflicting files

最後までいくと 設定を保存するコマンドが書いてあるので
実行すると次回から聞いてこなくなります。
(2回目の実行からは聞いてこないので間違わないように。)

Step4
必要なモジュールをインストールします
コマンドラインで
cpan モジュール名
cpanの中で install モジュール名

例1
cpan Digest::SHA
例2
cpan
 install Digest::SHA

更新
cpan
  cpanを実行後 ? でコマンド説明を表示して
  update /regexp/ でアップデートするといいでしょう
  update /.*/

 自動更新方法は、不明
tips
更新する名前を1行ずつ書いたファイルを用意します
例: cpan-install-list.txt
Digest
Digest::SHA

次に
cat cpan-install-list.txt  | xargs cpan
を実行するとまとめてインストールできます



cpanの再設定
cpan
cpan> o conf init


非推奨 全部手動更新
仮想 OS内で再現することを確認
push(@INC,"/home/username/lib/perl/");
スクリプト実行
Can't locate Digest/SHA.pm in @INC (@INC contains: /home/username/lib/perl/ /usr/local/lib/perl5/5.8.8/BSDPAN
cp -Rp blib/lib/* /home/username/lib/perl/
Can't locate loadable object for module Digest::SHA in @INC (@INC contains: /home/username
cp -Rp blib/arch/* /home/username/lib/perl/
正常実行

【結論】 ~/lib/per直下に置く場合
perl  -I$HOME/lib/perl Makefile.PL  PREFIX=~/lib/perl
make
cp -Rp blib/lib/* /home/username/lib/perl/
cp -Rp blib/arch/* /home/username/lib/perl/
Step1 cpanのホームページで検索して、
圧縮ファイルを取得
(ソースコード単体ではないので注意)
(cpanのソフトでのインストールは不明。)
Step2
圧縮ファイルの展開
Step3
perl  -I$HOME/local/perl/lib/perl5/site_perl/5.8.9/mach Makefile.PL  PREFIX=$HOME/local/perl
make
make install
注意
make installだと
~/local/perl/lib/perl5/site_perl/5.8.9/mach/Digest/SHA.pm
みたいになるので注意。

@INCに追加するスクリプト書いてそれをrequireすると簡単に指定できます。






PR

[PR]