所以我正试图在我的Centos机器上运行一个perl脚本。我在Centos 5、6、7上尝试过,但没有成功。每次我运行脚本时,我都会得到这个:
Can't locate Net/SSH2.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .)
我已经安装了libssh2
Package libssh2-1.4.3-12.el7.x86_64 already installed and latest version
我试过使用cpan,但无论我做什么,它似乎都不起作用。我只是不明白为什么perl找不到模块。。。我是不是错过了什么?如果有人能指导我实际安装SSH2模块,因为我到处看了看,似乎什么都不起作用。提前谢谢。
更新:当我尝试通过cpan:安装时
cpan[1]> install Net::SSH2
Reading '/root/.cpan/Metadata'
Reading '/root/.cpan/sources/authors/01mailrc.txt.gz'
........................................................................DONE
Reading '/root/.cpan/sources/modules/02packages.details.txt.gz'
Database was generated on Fri, 04 Jan 2019 22:17:03 GMT
HTTP::Date not available
.............
New CPAN.pm version (v2.22) available.
[Currently running version is v1.9800]
You might want to try
install CPAN
reload cpan
to both upgrade CPAN.pm and run the new version without leaving
the current session.
........................................Killed
仍然得到相同的错误。。。
libssh是SSH的C库。Net::SSH2是一个Perl模块。它们是不同的软件(尽管Net::SSH2可能依赖于libssh)。
您需要安装Net::SSH2。
请参阅安装丢失的Perl模块的最简单方法是什么?
libssh2
是SSH的C库,而Net::SSH2
是Perl模块。由于Net::SSH2
将从源代码安装(这就是cpan
命令在后台所做的),因此您需要确保安装了几个先决条件:
sudo yum install libssh2 libssh2-devel gcc
为了完整起见,已将libssh2
软件包添加到此列表中。需要libssh2
(libssh2-devel
)和gcc
(C编译器)的开发包,因为从源代码安装Net::SSH2
的过程需要构建一个库,以便Net::SSH2
可以与libssh2
对话。
当从源代码安装Perl模块时,默认情况下会运行模块的测试套件,以在实际运行安装步骤之前检查一切是否正常。因此,您需要确保安装了perl-Test-Simple
,因为Net::SSH2
使用它来运行测试:
sudo yum install perl-Test-Simple
我个人发现通过cpanm
安装Perl模块比通过cpan
安装Perl模块容易得多,因此我建议安装它(它作为yum
包提供):
sudo yum install perl-App-cpanminus
现在Net::SSH2
的安装应该像一样简单
cpanm Net::SSH2
如果您想在系统范围内安装模块,则需要在cpanm
调用前加上sudo
:
sudo cpanm Net::SSH2