首页 > 编程 > Perl > 正文

cpan安装Net::SSH::Perl中遇到的一些问题

2020-06-04 20:28:57
字体:
来源:转载
供稿:网友

使用cpan安装Net::SSH::Perl:
cpan>install Net::SSH::Perl

期间遇到了一些问题,记录在此,以备后阅。

因为cpan对其它软件的依赖性,要求软件版本的不能过低,所以先升级一下这两个模块:

代码如下:
cpan>upgrade Module::Build
cpan>upgrade ExtUtils::Install

Math::BigInt报错:
Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::Calc at /usr/lib/perl5/site_perl/5.8.8/Crypt/DH.pm line 6

按照报错信息,把DH.PM这个文件的第六行做更改:
原为:use Math::BigInt lib => “GMP,Pari”;
更为:use Math::BigInt try => “GMP,Pari”;

在安装过程中,装到Math::GMP模块时,报错而停止。 大概意思是缺少GMP.c文件,故现在系统下安装一个GMP库文件,和一个GMP库的开发包。
代码如下:
aptitude install libmath-gmp-perl
aptitude search libgmp3-dev

如前面安装Math:GMP失败过,先把如下文件夹删掉后,再安装吧。
rm -fr /root/.cpan/build/Math-GMP-2.06-*

基本语法
1. 一般语法

代码如下:
my $host = "192.168.14.222";
        my $user = "root";
        my $passwd = "123456";
        my %params = (
        protocal => '2,1',
        debug => '1',
        );
        use Net::SSH::Perl;
        my $ssh = Net::SSH::Perl->new($host[,%params]);
        $ssh->login($user, $pass);
        my($out, $err, $exit) = $ssh->cmd($cmd);
        print "$out/n";

2. 根据提示信息,返回字符, 可实现交互式操作。

代码如下:
$ssh->register_handler("stdout",sub{
            my($channel,$buffer) = @_;
            my $str = $buffer->bytes;
            if($str =~ /(.*)/[Y//n///?/]/i){
                  $channel->send_data("y/n")
               }}
        );

3. Term::ReadKey模块   得到一个互动的伪终端

代码如下:
use Term::ReadKey;
ReadMode('raw');
$ssh->shell;
ReadMode('restore');


解决连接远程主机慢的问题

网上说要安装三个东西:
YAML
Math::BigInt
Math::BigInt::GMP

之前已经安装完 YAML 和  Math::BigInt 了,在装完 Math::BigInt::GMP 后测试,在与远程主机的连接过程中,速度明显提升(连接到远程主机后操作时间不变)。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表