- ベストアンサー
CPANの初期設定のやり直し方
- 初めてCPANを使い、perl -MCPAN -e shellとしたのですが、国やCPAN サーバを聞いてこず、どうもうまくいっていないみたいです。
- もう一度perl -MCPAN -e shellとやるのですが設定をきいてきません。
- もう一度やり直すにはどうすればいいでしょうか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
-eは判りますよね? コマンドラインでperlを1行のコマンドで動かすオプションで 詳しくは"perl ワンライナー" で検索してください -MCPANについては http://homepage3.nifty.com/hippo2000/perltips/CPAN.htm MCPANというコマンドとかじゃなくて -MのオプションがCPAN つまりCPANモジュールをワンライナーで使うときの記述って事です。 File::Findモジュールをワンライナーで使うなら perl -MFile::Find -e 以下略 LWPなら perl -MLWP::Simple -e 以下略 http://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A1%E3%83%A2%2FFile%3A%3AFind%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB http://homepage3.nifty.com/hippo2000/perltips/lwpcook.html#GET
その他の回答 (7)
- umasikajiro
- ベストアンサー率67% (545/803)
http://www-06.ibm.com/jp/developerworks/linux/010706/j_l-p101.html http://www-06.ibm.com/jp/developerworks/linux/030523/j_l-p102.html や、それらのリンクページですかねえ? その辺りはあんまり詳しくないので、、、
お礼
ありがとうございます。^^ 難しそうですね。
- umasikajiro
- ベストアンサー率67% (545/803)
1.# cp -rf /usr/lib/perl5/5.8.5/ /usr/lib/perl5/BK-5.8.5/ <=万一のためバックアップする 2. ブラウザなどで http://ftp.riken.jp/Linux/centos/4.4/os/i386/CentOS/RPMS/ などから perl-5.8.5-36.RHEL4.i386.rpm を /usr/local/src/ などにダウンロードする 3. (上記の状態だと)コマンドラインで/usr/local/src/ に移動してから # rpm2cpio perl*.rpm | cpio -id これで123456 blocks などと表示されたら /usr/local/src/usr/lib/perl5/5.8.5以下に展開されているので CPAN.pmなどを元の場所にコピーしなおす ##以上で削除前の状態に戻るはずです。 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/522rpmcpio.html それから本題のCPANですが、私は使ったことないですが cpan2rpm というものが有るそうです http://centossrv.com/cpan2rpm.shtml
お礼
ありがとうございます。 上記の方法で試してみたところうまくいきました。^^ 初期設定をきいてきたのですが、再試行ばかりで 国やサーバーリストを選ぶところへはいけませんでしたが、 手動でkddilabsを設定してダウンロードできるようになりました。 このMCPANというのはソフトか何かでしょうか? man perlとしたところオプションになかったのですが。
- umasikajiro
- ベストアンサー率67% (545/803)
あ、う、、、 今度からはrmでなくmvコマンドでfile名を変えるようにしてください 失敗しても元に戻せますので、、、、、 そうですね~~ perl自体をインストールしなおしたほうがいいかなあ? とりあえず以下を補足要求します 1、ディストリビューションとバージョン(例:Fedora Core5など) 2、Perlをどうやって入れたか?(OSインストール時のまま? yum? apt? それとも自分でコンパイル?)
お礼
ありがとうございます。 CentOS4.4を使っています。 Perlは何で入れたか自信がないです。^^;; [root@localhost yum.repos.d]# rpm -qa perl perl-5.8.5-36.RHEL4 yum remove perl-5.8.5-36.RHEL としたところ相当な数のパッケージが依存関係で削除されてしまうので perl-5.8.5-36.RHEL4のみアンインストールしてインストールしなおしたらいいのかと考えていますがどうでしょうか?
- umasikajiro
- ベストアンサー率67% (545/803)
#3で煮え切らない書き方してましたが、 こちらで試して確認しました。 #3のConfig.Pmと /root/.cpan/ ディレクトリ の2つを、削除または移動してから # perl -MCPAN -e shell してください。 これで最初からやり直しになります。
お礼
わざわざためしていただいたんですね。 ありがとうございます。^^ さっそくためそうとしたのですが、 あやまって rm /usr/lib/perl5/5.8.5/CPAN.pm を削除してしまい、困ったことになってしまいました。rm /usr/lib/perl5/5.8.5/CPAN/*としたのですが同様のエラーがでます。perlそのものをアンインストールしたほうがいいでしょうか? rm /usr/lib/perl5/5.8.5/CPAN.pm rm: remove 通常ファイル `/usr/lib/perl5/5.8.5/CPAN.pm'? y [root@localhost ~]# perl -MCPAN -e shell Can't locate CPAN.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .). BEGIN failed--compilation aborted.
- umasikajiro
- ベストアンサー率67% (545/803)
cpan>o conf で打つと1行目に CPAN::Config options from /usr/lib/perl5/5.8.8/CPAN/Config.pm: と出てくるはずですが、その /usr/lib/perl5/5.8.8/CPAN/Config.pmを消すなり、 /usr/lib/perl5/5.8.8/CPAN/BK-Config.pmにmvしちゃうなりすれば出来るようですが、、、
- umasikajiro
- ベストアンサー率67% (545/803)
>変更してみたのですが、どうもうまくいかないみたいです。 URL的には ftp://ftp.kddilabs.jp/CPAN/ で間違っていませんので ・原因1.ネットワークの問題 ・原因2.たまたまサーバーが死んでいた。or混み合っていた うちでもftp://ftp.kddilabs.jp/CPAN/を指定していますが install途中で何度も再試行がかかりますよ 試しにftp://ftp.kddilabs.jp/CPAN/を削除してから 存在しないURLを指定してinstall Bundle::SSHしてみたら 質問者さんのと同じようなメッセージになりました ブラウザで ftp://ftp.kddilabs.jp/CPAN/ ちゃんとアクセスできることを確認してからやり直すか また別のサーバーを選びなおしてみてはどうでしょうか?
お礼
ありがとうございます。 ブラウザでアクセスできるところは確かめました。 cpan> install Bundle::SSH CPAN: Storable loaded ok Going to read /root/.cpan/Metadata Warning: Found only 0 objects in /root/.cpan/Metadata となっているのが少し気になるのと、 初期設定で国やサーバーリストを聞かれなかったのが 気になるのですが、もう一度始めて接続したときのように初期設定をやり直すことはできないでしょうか?
- umasikajiro
- ベストアンサー率67% (545/803)
root@localhost ~]# perl -MCPAN -e shell で cpan>o conf オプション で設定変更です http://www.drk7.jp/MT/archives/000885.html http://www.kozupon.com/perl/cpan.html <=の 2.
お礼
ありがとうございます。 変更してみたのですが、どうもうまくいかないみたいです。 urllist ftp://ftp.kddilabs.jp/CPAN 途中までですがこういう感じになります。 cpan> install Bundle::Test CPAN: Storable loaded ok Going to read /root/.cpan/Metadata Warning: Found only 0 objects in /root/.cpan/Metadata CPAN: LWP::UserAgent loaded ok Fetching with LWP: ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz LWP failed with code[500] message[LWP::Protocol::MyFTP: Bad hostname 'ftp.kddilabs.jp'] Fetching with Net::FTP: ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz Trying with "/usr/bin/links -source" to get ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz ERROR at dump.c:188: Host not found System call "/usr/bin/links -source "ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz" > /root/.cpan/sources/authors/01mailrc.txt" returned status 1 (wstat 256) Warning: expected file [/root/.cpan/sources/authors/01mailrc.txt.gz] doesn't exist Trying with "/usr/bin/wget -O -" to get ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz --20:09:25-- ftp://ftp.kddilabs.jp/CPAN/authors/01mailrc.txt.gz => `-' ftp.kddilabs.jp をDNSに問いあわせています... 失敗しました: 名前解決時の一時的な失敗.
お礼
ありがとうございます。CPANのモジュールを使うということだったんですね。 [root@localhost ~]# perldoc CPANとしたところ CPANモジュールの使い方が分かりました。^^ perlをコマンドラインで使うときのオプションはどこのマニュアルを みればよいでしょうか?探したのですが見つからなくて。 -pオプションなどあると思うのですが。