因此,我试图在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
仍然出现相同的错误...
答案 0 :(得分:4)
libssh是SSH的C库。 Net :: SSH2是Perl模块。它们是不同的软件(尽管Net :: SSH2可能取决于libssh)。
您需要安装Net :: SSH2。
答案 1 :(得分:1)
正如Quentin中提到的his answer,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
容易得多,因此我建议安装它(它以yum
软件包的形式提供):
sudo yum install perl-App-cpanminus
现在Net::SSH2
的安装应该很简单:
cpanm Net::SSH2
如果要在系统范围内安装模块,则需要在cpanm
调用前加上sudo
:
sudo cpanm Net::SSH2