установка Net / SSH / Perl.pm - PullRequest
4 голосов
/ 09 мая 2011

Я довольно новичок в написании скриптов на Perl. Я пытаюсь подключиться к серверу и выполнить некоторые команды. Я должен предоставить имя пользователя и пароль.

При попытке запустить скрипт, который у меня есть (код приведен ниже). Я получаю следующую ошибку.

Я предполагаю, что это означает, что мне нужно установить / сделать Net / SSH / Perl.pm, однако, когда я следую инструкциям и инструкциям, которые я нашел в Интернете, ни один из них не работает.

Может кто-нибудь, пожалуйста, помогите мне. Я пробовал CPAN и ppm, CPAN говорит, что не может найти net::ssh::perl или другие варианты этой строки. И ppm даже не запустится, я не вижу его в своем каталоге perl. Любая помощь с благодарностью!


// The code
#!/usr/bin/perl
use Net::SSH::Perl;

$uName = "username";
$pWord = "password";

$unitIp = $ARGV[0];

my $ssh = Net::SSH::Perl->new($unitIp, 35903);
$ssh->login($uName, $pWord);
my $out = $ssh->cmd("java -version");
print $out;

// the error that is returned
Can't locate Net/SSH/Perl.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at needsAName.pl line 31.
BEGIN failed--compilation aborted at needsAName.pl line 31.

Ответы [ 5 ]

7 голосов
/ 09 мая 2011

Вы можете попробовать это:

curl -L http://cpanmin.us | perl - --sudo App::cpanminus
cpanm Net::SSH::Perl

с учетом регистра.

Объяснение: 1-я строка установит "cpanm" - какой ИМХО самый простой способ установки модулей
2-я строка будетустановить модуль Net :: SSH :: Perl

1 голос
/ 30 октября 2012

Почему вы должны использовать Net :: OpenSSH вместо других perl ssh? Это то, что я нашел после установки через cpanm:

Net :: OpenSSH против Net :: SSH ::. * Модулей

   Why should you use Net::OpenSSH instead of any of the other Perl SSH
   clients available?

   Well, this is the perldoc writters (biased) opinion:

   Net::SSH::Perl is not well maintained nowadays (update: a new
   maintainer has stepped in so this situation could change!!!), requires
   a bunch of modules (some of them very difficult to install) to be
   acceptably efficient and has an API that is limited in some ways.

   Net::SSH2 is much better than Net::SSH::Perl, but not completely stable
   yet. It can be very difficult to install on some specific operative
   systems and its API is also limited, in the same way as Net::SSH::Perl.

   Using Net::SSH::Expect, in general, is a bad idea. Handling interaction
   with a shell via Expect in a generic way just can not be reliably done.

   Net::SSH is just a wrapper around any SSH binary commands available on
   the machine. It can be very slow as they establish a new SSH connection
   for every operation performed.

   In comparison, Net::OpenSSH is a pure perl module that doesn't have any
   mandatory dependencies (obviously, besides requiring OpenSSH binaries).
1 голос
/ 16 мая 2011

Вместо Net :: SSH :: Perl попробуйте использовать Net :: SSH2 или, если вы находитесь в среде Unix / Linux Net :: OpenSSH ,Их гораздо проще установить!

0 голосов
/ 22 февраля 2017
perl -MCPAN -e 'install Net::SSH::Perl'
0 голосов
/ 13 августа 2013

просто наберите на терминале cpan, а затем введите: force install Net :: SSH :: Perl

...