Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无法安装Net::SSH2 perl模块_Linux_Perl_Module_Cpan - Fatal编程技术网

Linux 无法安装Net::SSH2 perl模块

Linux 无法安装Net::SSH2 perl模块,linux,perl,module,cpan,Linux,Perl,Module,Cpan,我正在尝试用cpan安装一个perl模块:Net::SSH2,但实际上不起作用 cpan -f install Net::SSH2 输出: CPAN:Storable loaded ok(v2.20)即将读取 “/root/.cpan/sources/authors/01mailrc.txt.gz” 完成 阅读“/root/.cpan/sources/modules/02packages.details.txt.gz” 数据库于2017年5月22日星期一22:29:03 GMT HTTP::D

我正在尝试用cpan安装一个perl模块:Net::SSH2,但实际上不起作用

cpan -f install Net::SSH2
输出:

CPAN:Storable loaded ok(v2.20)即将读取 “/root/.cpan/sources/authors/01mailrc.txt.gz” 完成 阅读“/root/.cpan/sources/modules/02packages.details.txt.gz” 数据库于2017年5月22日星期一22:29:03 GMT HTTP::Date生成 无法使用的。。。。。。。。。。。。。新的CPAN.pm版本(v2.16)可用。
[当前运行的版本是v1.9402]您可能想试试 安装CPAN 重新加载cpan以升级cpan.pm并在不离开当前会话的情况下运行新版本

完成 无法读取“/root/.cpan/sources/modules/03modlist.data.gz” 通过包“CPAN::Modulelist”定位对象方法“data”(可能是 您忘记在(eval16)第1行加载“CPAN::Modulelist”?)。在 /usr/share/perl5/CPAN/Index.pm第518行 调用的CPAN::Index::rd_modlist('CPAN::Index','/root/.CPAN/sources/modules/03modlist.data.gz') /usr/share/perl5/CPAN/Index.pm第85行 CPAN::Index::reload('CPAN::Index')在/usr/share/perl5/CPAN.pm行955处调用 CPAN::exists('CPAN=HASH(0x21fd2f0)','CPAN::Module','install')在/usr/share/perl5/CPAN/Shell.pm行1243处调用 在/usr/share/perl5/CPAN/Shell.pm第1639行调用CPAN::Shell::expandany('CPAN::Shell','install') CPAN::Shell::rematein('CPAN::Shell','force','install','install')在/usr/share/perl5/CPAN/Shell.pm行1935处调用 CPAN::Shell::在/usr/bin/CPAN第318行调用的ANON('CPAN::Shell','install','install') main::_在/usr/bin/cpan第278行调用默认('ARRAY(0x1938f18)')

其他人也有类似的问题。在这种情况下,这个答案似乎有效:

在我看来,您的.cpan目录中有一些损坏的数据。我会把它吹走,然后再试一次:

$ rm -rf /home/user/.cpan
试试吧,风险自负。在您的情况下,需要删除
/root/.cpan

此外,
cpan
的正确用法是在命令后列出模块名称。因此,您应该使用
cpan-Net::SSH2
,而不是
cpan-install-Net::SSH2
。如果使用
-f
选项,则必须指定
-i
cpan-f-i-Net::SSH2
,但不要先强制执行。您不希望在系统的
perl
中随意安装损坏的模块

事实上,一般来说,您根本不想弄乱系统的
perl
。构建您自己的
perl
,并随心所欲地处理它


PS:正是因为许多人犯了这个错误,才创建了一个虚拟模块。

您的CPAN安装似乎不完整或已损坏。OS和Perl版本可能会有所帮助。在许多当前的Linux发行版上,可以使用诸如yum(RHEL/CentOS)、apt(Debian/Ubuntu)和yast(SuSE)等常规系统软件实用程序安装Perl模块及其依赖项。缺点是版本可能不是最新的。

安装Perl模块最安全、最方便的方法可能取决于发行版。例如:

如该示例所示,在系统上安装Perl模块通常需要sudo或root用户。所以,如果你是一个sudoer,你可能想用sudo试试你的命令

如果您没有这种电源,可能需要在本地安装。这通常意味着将其下载到您在主目录中创建的Perl库目录中,并以某种方式包括
@INC
中的路径,例如更新
$PERL5LIB
以包括
/home/user/Perl/modules/Net-SSH2/lib/
或模块库目录的任何路径

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