perlのcpanのトラブルについて質問です。

開発環境で作っていたプログラムをサーバーにアップしたところ、HTML::Template::Proが見つからないということで下記のようなエラーが出てしまいました。
Can't locate loadable object for module HTML::Template::Pro in @INC (@INC contains: 〜〜〜〜 .) at hogehoge.cgi line 12
Compilation failed in require at hogehoge.cgi line 12.
BEGIN failed--compilation aborted at hogehoge.cgi line 12.
使用しているレンタルサーバーにHTML::Template::Proがインストールされていないせいだと思ったので、やむを得ず開発環境のpmをサーバーにアップしたのですが同じエラーが表示されたまま変わりません。
・ライブラリ類はlibフォルダを作ってその中にcpanも含め全て格納し、use lib './lib'で読み込み場所を指定しています
 ※自作ライブラリも同じフォルダに入れてあり、こちらはuse hogehoge;すれば問題なく読み込めることを確認しています
・開発環境のcpanは、find / -name "Pro.pm"で場所を確認して、該当ファイルを取り出してアップしたつもりです
何か原因に思い当たることはございませんでしょうか。
また、これを試してみた方がいいよ、などもあればお教えください。
よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:2009/01/04 09:20:12
  • 終了:2009/01/09 06:47:15

回答(3件)

id:ryuzee No.1

Ryuzee回答回数19ベストアンサー獲得回数12009/01/04 12:47:37

ポイント40pt

■対応案1

libフォルダにモジュールをコピーされて、パスも通っているということですが、

lib/HTML/Template/という階層になっていますか?なっていなければパッケージ名の構成にあわせてみてください。

■対応案2

本番環境でCPANを利用できるのであれば

cpan -i HTML::Template::Pro

として、まっとうな方法でライブラリをインストールした方が良いと思います。

HTML::Template::ProはXSのライブラリのようなので、単純なpmファイルのコピーでは動作しない可能性もあります。

またはCPANからソースを取得して、インストールしても良いと思います。

id:n_maco2

ご回答ありがとうございます。

パスそのものはご回答内のフォルダ直下にPro.pmがあり合っているはずです。

やはり通常通りcpanでインストールするのが一番なんですね。

とは言え、共用サーバーで自分で実行できない環境なのがつらい。。。

管理者に問い合わせてみるしか手がなさそうですね。

ありがとうございました

2009/01/04 21:01:20
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402009/01/04 14:02:42

ポイント41pt

HTML::Template::Pro - Perl/XS module to use HTML Templates from CGI scripts - search.cpan.org

Perl/XS module

だそうなので、pure perl ではないね。


この場合対象のサーバーと同じか近い環境でコンパイルしたバイナリも用意する必要がある。

で、

やむを得ず開発環境のpmをサーバーにアップしたのですが同じエラーが表示されたまま変わりません。

の場合はインストール自体がミスってるね。

Pro.pm の配置場所はあってる?

./lib/HTML/Template/Pro.pm
id:n_maco2

いつもご回答ありがとうございます。

> この場合対象のサーバーと同じか近い環境でコンパイルしたバイナリも用意する必要がある。

そうなんですか。

上の回答にも書きましたが、パス自体は合っているはずでです。

とりあえず本番で普通にcpanを使ってインストールできないか問い合わせてみることにします

ありがとうございました

2009/01/04 21:03:54
id:mulloo No.3

mulloo回答回数151ベストアンサー獲得回数22009/01/05 20:03:36

http://www.tohoho-web.com/wwwperl2.htm

>外部ファイルを perl のライブラリとして呼び出す

id:n_maco2

ご回答ありがとうございます。

ただ、もう少し丁寧にご説明いただけると助かります。。。

Pro.pmをこの関数で指定するべきということでしょうか?

2009/01/05 22:38:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません