アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTML::FillInFormをCPAN経由でインストールしましたが、うまく動きません。対処方法を教えていただけないでしょうか。
状況は以下のとおりです。
CPAN経由でHTML::Templateはインストールして使えているのでCPANの原因ではない模様。

HTML::FillInFormを使うPerlを実行すると以下のメッセージが出る
Can't locate HTML/FillInForm.pm in @INC (@INC
contains: /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach

/usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8 .) at

***(PGM名).cgi line 34, <DATA> line 846.

line34にはuse HTML::FillInFormと記述している。
教えてgooで検索したところ、
http://oshiete1.goo.ne.jp/qa2007575.html
に同様の話が出ていたので、回答へのお礼を参考に、
処理を実行。
ところが、make installの時点で以下のメッセージが出てインストールできません
ERROR: Can't create '/usr/local/lib/perl5/site_perl/5.8.8/mach'
Do not have write permissions on '/usr/local/lib/perl5/site_perl/5.8.8/mach'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1
*** Error code 13

CPAN 経由でインストールを再度試みても、インストールされていると誤認識されているのか、
HTML::FillInForm is up to date (2.00).
と出ます。
原因と解決方法を教えていただけないでしょうか。
FillInFormの前に別のモジュールをインストールしてないといけないのでしょうか?

A 回答 (7件)

echo no | cpan



じゃなくて、単にcpanコマンドを叩いて色々質問に答えたら、.cpanディレクトリできませんかね? なお、.cpanディレクトリは ls -a しないと見えないです。


後、ご質問の文中のエラーメッセージの @INC に $HOME 以下のPATHがないので、仮にインストールされてもこれじゃあモジュールを読めません。CGI側に、

use lib qw(/ホームのPATH/local/lib/perl5 /ホームのPATH/local/lib/perl5/site_perl);

とかって追加するのもいいかもしれません。

この回答への補足

ありがとうございます。
さっそく試したところ、エラーでひっかからなくなりました。

さっそくこれからtemplateファイルを作成し、きちんと動くか確認してみます

後学のために質問させていただきたいのですが、
開発環境、デモ環境、本番環境と用意していた場合には、それぞれにアップロードする場合に、ホームのPATHを書き直す必要が出てくると思います。
今回教えていただいた方法はCPANがちゃんと入っていれば必要ない方法なんでしょうか?
あるいはこの書き換えはCPANがきちんと導入されていてもやむを得ないのでしょうか?
やむをえない場合は、環境に依存した変数を定義したpmファイルを別に用意しているのでそちらで定義してincludeしようと思います。
お手数おかけいたしますが何卒よろしくお願いいたします。

補足日時:2007/10/16 12:14
    • good
    • 0
この回答へのお礼

この方法でなんとか解決しました。
お忙しいところ丁寧な解説ありがとうございました、。
非常に助かりました。
技術者ではないので、改修とテストに時間を要し、お礼が遅れてしまいました。申し訳ございません。
本当にありがとうございました。

お礼日時:2007/10/19 12:16

ANo.6 「$ echo no | cpan」の説明について一部訂正です。



「質問に全て no と答える」ではなく、
正しくは「最初の質問に no と答える」ですね。

最初の質問は、

Are you ready for manual configuration? [yes]

です。

「手動で設定するかい?」と聞かれています。
ここで、Enter を入力すると、デフォルトの yes が選択され、
質問攻めにあいます。

no を入力してEnter を入力すると、自動設定される
というわけです。
    • good
    • 0
この回答へのお礼

丁寧な説明ありがとうございます。
なるほどそういう意味でしたか、元々技術者ではないため
付け焼刃でなんとかやってる状態なので非常に助かります
ありがとうございました、

なんとか皆さんのアドバイスを総合して解決しました
今後ともよろしくお願いします

お礼日時:2007/10/19 12:14

> $ echo no | cpan


> するとcpan[1]> Unknown shell command 'no'. Type ? for help.
> と表示されてうまくできてない模様。

$ echo no | cpan
によって行われることは、
「cpan コマンドに標準入力で 文字列 no を渡す」
ということです。
初めてcpanコマンドを実行すると、
質問攻めにあいます。

いちいち答えるのがめんどくさいので、
それらに全て no と答えて初期設定を終わらせようということなのです。

cpan[1]> Unknown shell command 'no'.
というメッセージが表示されるということは、
cpan シェルが立ち上がって、質問をきいてこず、
no が入力されたが、
no というコマンドは知りませんと
怒られたということなのです。

cpanシェルが質問攻めしてこないということは、
どこかのMyconfig.pm を読みにいっていると思われます。


$ cpan
cpan> o conf

として設定を確認してみてください。

CPAN::Config options and /home/user/.cpan/CPAN/MyConfig.pm
というように、MyConfig.pm のパスが表示されます。


また、CPAN再導入の際に、
1.Config.Pmと/root/.cpan/ ディレクトリ2つを、名称変更
2.# perl -MCPAN -e shell

と2. で cpanシェルをたちあげられているようです。
この時点ではどういう操作をされたのでしょうか。

参考URL:http://iandeth.dyndns.org/mt/ian/archives/000623 …
    • good
    • 0

お呼びでないかも知れませんが… #2です。



CGI::Ex::Fill は FTP で適当なディレクトリにアップして、
use lib qw(適当なディレクトリ);
すれば使えますよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。
CGI::Ex::Fillかなり使えそうですが、使い勝手の書かれたものが少なく、今回は断念しました。
余裕ができたら挑戦してみます。

お礼日時:2007/10/19 12:13

PATHとPERL5LIB環境変数の設定は、シェルに反映されているでしょうか?




「ユーザー領域にCPANをインストールする方法」
http://www.otsune.com/bsd/tips/usercpaninstall.h …
の以下のくだりです。
------------------------------------------------------------------------------
~/.cshrcにPATHとPERL5LIB環境変数の設定を追記します。(bashを使っている場合はexport PERL5LIB=$HOME/local/lib/perl5などと読み替えてください)

$ echo 'setenv PATH $HOME/local/bin:$PATH' >> ~/.cshrc
$ echo 'setenv PERL5LIB $HOME/local/lib/perl5:$HOME/local/lib/perl5/site_perl' >> ~/.cshrc
$ source ~/.cshrc
------------------------------------------------------------------------------



> CPAN経由でHTML::Templateはインストールして使えているのでCPANの原因ではない模様

さくらインターネットには、もともとHTML::Template がインストール済みであるようです。
(ref: http://zenryokuhp.com/server/sakura_kentou.htm)
ユーザディレクトリにCPANでインストールした方ではなく、
もともとインストールされている方をロードしているために、
利用できているのではないでしょうか。

この回答への補足

ご指摘のとおり、CPANインストール時の問題のようです。
他に推薦いただいた代替モジュールをインストールする場合にも同様の問題が発生し、インストールできませんでした。
もともとインストールされてるTemplateを使ってた模様です。
ただ、指摘いただいたシェルへの反映は行っており、ファイルの中身にも記述されていました。
ところが、CPANインストール時には地域などを聞かれていないため、
失敗していると思います。
再度CPANを導入してみようと思います。
再インストールの適切な方法を教えていただけないでしょうか。
というのも、
以下教えてgooの情報を参考にCPANのインストールをやり直したところ、
.cpanの下にCPANフォルダができず、myconfigファイルが存在しません。
http://oshiete1.goo.ne.jp/qa2460025.html
もともとのCPANフォルダは名前を変えてキープしているので元には戻せます(といってもだめなのには変わりません)が、CPANを適切に入れなおす方法はないでしょうか?
上記をCPAN再導入のやり方を参考にして実施したことは以下のとおりです
1.Config.Pmと/root/.cpan/ ディレクトリ2つを、名称変更
2.# perl -MCPAN -e shell
3.この後、http://www.otsune.com/bsd/tips/usercpaninstall.h …を参考にさくらの環境にインストールする準備を実施
$ mkdir -p ~/local
$ echo no | cpan

するとcpan[1]> Unknown shell command 'no'. Type ? for help.
と表示されてうまくできてない模様。
また、実際にCPANフォルダも存在しない

なかなかうまくいかず申し訳ございませんが、なにとぞよろしくお願いします。

補足日時:2007/10/14 20:55
    • good
    • 0

質問に対する回答にはなりませんが…


こちらは pure perl で使いやすいですよ。
http://search.cpan.org/~rhandom/CGI-Ex-2.20/lib/ …

参考URL:http://search.cpan.org/~rhandom/CGI-Ex-2.20/lib/ …
    • good
    • 0
この回答へのお礼

代替案ありがとうございます
早速これから試してみます。

お礼日時:2007/10/14 12:39

make install のエラーに、



Do not have write permissions ...

つまり「ファイルを書き込むパーミッションがないよ!!」

と出てます。

以下のように、make install の前に管理者権限になる必要がありますね。

$ su
Password: // rootパスワード入力
# make install


もし、sudo を設定しているなら、
$ sudo make install

参考URL:http://x68000.q-e-d.net/~68user/net/ext-module.h …

この回答への補足

早速の回答ありがとうございました。
質問に掲載する情報が足りてなかったです。すいません。
このサーバーはさくらインターネットの共用サーバーであるため、管理者権限にはなれません。このため、su ではsorryと表示されてしまいます。
そのためhttp://www.otsune.com/bsd/tips/usercpaninstall.h …を参考にユーザ領域にCPANをインストールして使用している状況です。

このような状況でどうにかなるものでしょうか。
たびたびすいませんがよろしくお願いいたします。

補足日時:2007/10/13 19:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!