Почему Perl не находит мой установленный модуль SSH2? - PullRequest
0 голосов
/ 05 января 2019

Итак, я пытаюсь запустить скрипт perl на моей машине Centos. Я пробовал 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, потому что я искал повсюду, и, похоже, ничего не работает. Заранее спасибо.

UPDATE: Когда я пытаюсь установить через 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

Все еще получаю ту же ошибку ...

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Как Квентин упоминается в его ответ , libssh2 - это библиотека C для SSH, тогда как 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

Лично мне гораздо проще устанавливать модули Perl через cpanm, чем cpan, поэтому я рекомендую установить его (он доступен в виде пакета yum):

sudo yum install perl-App-cpanminus

Теперь установка Net::SSH2 должна быть такой простой, как:

cpanm Net::SSH2

Если вы хотите установить модуль в масштабе всей системы, то вам нужно будет префикс cpanm для вызова sudo:

sudo cpanm Net::SSH2
0 голосов
/ 05 января 2019

libssh - это библиотека C для SSH. Net :: SSH2 - это модуль Perl. Это разные программы (хотя Net :: SSH2, вероятно, зависит от libssh).

Вам необходимо установить Net :: SSH2.

См. Какой самый простой способ установить отсутствующий модуль Perl?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...