- ベストアンサー
HTML::FillInFormが使えない(インストールできない?)
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の前に別のモジュールをインストールしてないといけないのでしょうか?
- みんなの回答 (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); とかって追加するのもいいかもしれません。
その他の回答 (6)
- chaimasuka
- ベストアンサー率57% (26/45)
ANo.6 「$ echo no | cpan」の説明について一部訂正です。 「質問に全て no と答える」ではなく、 正しくは「最初の質問に no と答える」ですね。 最初の質問は、 Are you ready for manual configuration? [yes] です。 「手動で設定するかい?」と聞かれています。 ここで、Enter を入力すると、デフォルトの yes が選択され、 質問攻めにあいます。 no を入力してEnter を入力すると、自動設定される というわけです。
お礼
丁寧な説明ありがとうございます。 なるほどそういう意味でしたか、元々技術者ではないため 付け焼刃でなんとかやってる状態なので非常に助かります ありがとうございました、 なんとか皆さんのアドバイスを総合して解決しました 今後ともよろしくお願いします
- chaimasuka
- ベストアンサー率57% (26/45)
> $ 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シェルをたちあげられているようです。 この時点ではどういう操作をされたのでしょうか。
- g_p_
- ベストアンサー率53% (28/52)
お呼びでないかも知れませんが… #2です。 CGI::Ex::Fill は FTP で適当なディレクトリにアップして、 use lib qw(適当なディレクトリ); すれば使えますよ。
お礼
ありがとうございました。 CGI::Ex::Fillかなり使えそうですが、使い勝手の書かれたものが少なく、今回は断念しました。 余裕ができたら挑戦してみます。
- chaimasuka
- ベストアンサー率57% (26/45)
PATHとPERL5LIB環境変数の設定は、シェルに反映されているでしょうか? 「ユーザー領域にCPANをインストールする方法」 http://www.otsune.com/bsd/tips/usercpaninstall.html の以下のくだりです。 ------------------------------------------------------------------------------ ~/.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.htmlを参考にさくらの環境にインストールする準備を実施 $ mkdir -p ~/local $ echo no | cpan するとcpan[1]> Unknown shell command 'no'. Type ? for help. と表示されてうまくできてない模様。 また、実際にCPANフォルダも存在しない なかなかうまくいかず申し訳ございませんが、なにとぞよろしくお願いします。
- g_p_
- ベストアンサー率53% (28/52)
質問に対する回答にはなりませんが… こちらは pure perl で使いやすいですよ。 http://search.cpan.org/~rhandom/CGI-Ex-2.20/lib/CGI/Ex/Fill.pm
お礼
代替案ありがとうございます 早速これから試してみます。
- chaimasuka
- ベストアンサー率57% (26/45)
make install のエラーに、 Do not have write permissions ... つまり「ファイルを書き込むパーミッションがないよ!!」 と出てます。 以下のように、make install の前に管理者権限になる必要がありますね。 $ su Password: // rootパスワード入力 # make install もし、sudo を設定しているなら、 $ sudo make install
補足
早速の回答ありがとうございました。 質問に掲載する情報が足りてなかったです。すいません。 このサーバーはさくらインターネットの共用サーバーであるため、管理者権限にはなれません。このため、su ではsorryと表示されてしまいます。 そのためhttp://www.otsune.com/bsd/tips/usercpaninstall.htmlを参考にユーザ領域にCPANをインストールして使用している状況です。 このような状況でどうにかなるものでしょうか。 たびたびすいませんがよろしくお願いいたします。
お礼
この方法でなんとか解決しました。 お忙しいところ丁寧な解説ありがとうございました、。 非常に助かりました。 技術者ではないので、改修とテストに時間を要し、お礼が遅れてしまいました。申し訳ございません。 本当にありがとうございました。
補足
ありがとうございます。 さっそく試したところ、エラーでひっかからなくなりました。 さっそくこれからtemplateファイルを作成し、きちんと動くか確認してみます 後学のために質問させていただきたいのですが、 開発環境、デモ環境、本番環境と用意していた場合には、それぞれにアップロードする場合に、ホームのPATHを書き直す必要が出てくると思います。 今回教えていただいた方法はCPANがちゃんと入っていれば必要ない方法なんでしょうか? あるいはこの書き換えはCPANがきちんと導入されていてもやむを得ないのでしょうか? やむをえない場合は、環境に依存した変数を定義したpmファイルを別に用意しているのでそちらで定義してincludeしようと思います。 お手数おかけいたしますが何卒よろしくお願いいたします。