Linux 无法安装Net::SSH2 perl模块
我正在尝试用cpan安装一个perl模块:Net::SSH2,但实际上不起作用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 -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)'