2017-05-23 16 views
-2

Net :: SSH2とcpanをインストールしようとしていますが、実際には動作しません。Cant install Net :: SSH2 perlモジュール

cpan -f install Net::SSH2 

出力:

CPAN:Storableの '/root/.cpan/sources/authors/01mailrc.txt.gz' を読みに行くOK(V2.20)ロード... .................................................. ....................... DONE '/root/.cpan/sources/modules/02packages.details.txt.gz'を読むつもりです 生成された月、22 5月2017 22:29:03 GMT HTTP :: Date 利用不可.............新しいCPAN.pmバージョン(v2.16)が利用可能です。
[現在実行中のバージョンはv1.9402です] install CPAN reload cpanを使用してCPAN.pmをアップグレードし、現在のセッションを終了せずに新しいバージョンを実行することができます。

...................................... ................. DONE '/root/.cpan/sources/modules/03modlist.data.gz'を読み込むことができません はオブジェクトメソッド "data"をパッケージ "CPAN :: Modulelist"(おそらく "CPAN :: Modulelist"をロードするのを忘れましたか?)(0120) Index :: rd_modlist( 'CPAN :: Index'、 '/root/.cpan/sources/modules/03modlist.data.gz')は、 /usr/share/perl5/CPAN/Index.pm行で呼び出されました85 CPAN: :CPAN :: exists( 'CPAN = HASH(0x21fd2f0)'、 'C​​PAN :: Module'、 'C​​PAN :: Hash(0x21fd2f0)'、 install ')/ usr/share/perl5/Cで呼び出されましたCPAN :: Shell :: pmany line 1243 CPAN :: Shell :: expandany( 'CPAN :: Shell'、 'install')は/usr/share/perl5/CPAN/Shell.pm行で呼び出されます。1639 CPAN :: Shell :: /usr/share/perl5/CPAN/Shell.pm行にあるrematein( 'CPAN :: Shell'、 'force'、 'install'、 'install')行1935 CPAN :: Shell :: ANON( 'CPAN/usr/bin/cpan行318 main :: _ default( 'ARRAY(0x1938f18)')が/ usr/bin/cpan行で呼び出されました278

答えて

0

このPerlMonks threadには、同様の問題を抱えている人がいます。この答えがそのようになったようです:

.cpanディレクトリに壊れたデータがあるようです。私はそれを吹き飛ばして、もう一度試してみた:

$ rm -rf /home/user/.cpan 

は、ご自身の責任でそれを試してみてください。あなたの場合、/root/.cpanを削除する必要があります。

さらに、cpanを正しく使用すると、コマンドの後にモジュール名をリストすることができます。したがって、cpan install Net::SSH2の代わりにcpan Net::SSH2を使用する必要があります。 -fオプションを使用する場合は、-icpan -f -i Net::SSH2を指定する必要がありますが、最初に強制的に実行しないでください。壊れたモジュールをシステムのperlにインストールする必要はありません。

実際、一般には、システムのperlをまったく混乱させたくありません。独自のperlをビルドし、必要なだけ混乱させます。

PS:installは、多くの人が間違いを犯しているため、正確に作成されたダミーモジュールです。

1

CPANのインストールが不完全であるか、または破損しているようです。 OSとPerlのバージョンが役に立ちます。現在の多くのLinuxディストリビューションでは、yum(RHEL/CentOS)、apt(Debian/Ubuntu)、yast(SuSE)などの通常のシステムソフトウェアユーティリティを使用してPerlモジュールとその依存関係をインストールできます。欠点は、バージョンが最新でない可能性があることです。

0

Perlモジュールをインストールする最も安全で便利な方法は、配布に依存します。例えば、the recommended method on Fedoraがある:システム上のPerlモジュールをインストールし、その例に示されるように

$ sudo dnf install 'perl(Net::SSH2)' 

は通常須藤またはルートユーザーを必要とします。 sudoerならsudoでコマンドを試してみてください。

この種の機能がない場合は、ローカルにインストールする必要があります。これは通常、あなたのホームディレクトリに作成したPerlライブラリディレクトリにダウンロードし、にパスを含めます。$PERL5LIB/home/user/perl/modules/Net-SSH2/lib/を含むように更新するか、モジュールのlibディレクトリへのパスが何であるかなどです。

関連する問題