Назад | Перейти на главную страницу

Не удалось установить модуль Perl Crypt :: OpenSSL :: RSA, пожалуйста, помогите

Я потратил несколько часов, но не смог установить модуль CPAN Crypt :: OpenSSL :: RSA. Это необходимо для надстройки Postfix dkimproxy.

Что я делаю, так это запускаю следующую команду в оболочке:

$ perl -MCPAN -e 'установить Crypt :: OpenSSL :: RSA'

Когда я запускаю эту команду, отображается несколько строк, а в конце отображается:

Checking if your kit is complete...
Looks good
Warning: prerequisite Crypt::OpenSSL::Random 0 not found.
Writing Makefile for Crypt::OpenSSL::RSA
---- Unsatisfied dependencies detected during [I/IR/IROBERTS/Crypt-OpenSSL-RSA-0.26.tar.gz] -----
    Crypt::OpenSSL::Random
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] 

Затем я нажимаю Enter (да) и десятки строк сгенерированы с ошибкой. В итоге получаю вот что:

...
...
RSA.xs:579: warning: implicit declaration of function ‘RSA_sign’
RSA.xs:579: error: ‘rsaData’ has no member named ‘hashMode’
RSA.xs:579: error: ‘rsaData’ has no member named ‘hashMode’
RSA.xs:579: error: ‘rsaData’ has no member named ‘rsa’
RSA.xs: In function ‘XS_Crypt__OpenSSL__RSA_verify’:
RSA.xs:605: error: ‘rsaData’ has no member named ‘rsa’
RSA.xs:610: error: ‘rsaData’ has no member named ‘hashMode’
RSA.xs:611: warning: implicit declaration of function ‘RSA_verify’
RSA.xs:611: error: ‘rsaData’ has no member named ‘hashMode’
RSA.xs:613: error: ‘rsaData’ has no member named ‘hashMode’
RSA.xs:616: error: ‘rsaData’ has no member named ‘rsa’
RSA.xs:619: warning: implicit declaration of function ‘ERR_peek_error’
RSA.xs: In function ‘boot_Crypt__OpenSSL__RSA’:
RSA.xs:214: warning: implicit declaration of function ‘ERR_load_crypto_strings’
make: *** [RSA.o] Error 1
  /usr/bin/make  -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible

Что я делаю не так? Пожалуйста, направь меня. Спасибо.

Я сам столкнулся с этой проблемой на CentOS 5.4. У меня не установлен openssl-devel! Так работает:

yum install openssl-devel

исправил это для меня

Или, если вы используете что-то на основе Debian:

sudo apt-get install libssl-dev

Странно, у меня аналогичный установлен на Debian Squeeze, и этот модуль всегда дает сбой.

perl Makefile.PL

Предупреждение: предварительное условие Crypt :: OpenSSL :: Random 0 не найдено. Написание Makefile для Crypt :: OpenSSL :: RSA

..но я не могу найти именно тот пакет, о котором вы говорите. ii libcrypt-openssl-bignum-perl 0.04-2 Доступ к многопоточным целочисленным арифметическим библиотекам OpenSSL ii модуль libcrypt-openssl-dsa-perl 0.13-4, который реализует систему проверки подписи DSA ii libcrypt-openssl-rsa-perl 0.25-1 + b1 Perl модуль, обеспечивающий базовую функциональность RSA ii libcrypt-openssl-x509-perl 1.4-1 Расширение Perl для OpenSSL X509 API

У вас где-то не хватает заголовка. Над тем, что вы разместили в выводе, вы должны увидеть ссылку на отсутствующий файл .h. Выясните, какой пакет предоставляет этот конкретный заголовок, и вы на шаг ближе. Вспенить ... Промыть ... Повторить, со временем компилируется :)

Исправлена ​​моя проблема и для Ubuntu, но требовалась libengine-tpm-openssl.

Снова побежал:

$ sudo perl -MCPAN -e 'установить Crypt :: OpenSSL :: RSA'

и все прошло нормально.

Да, это тоже устранило мою проблему на ящике Debian.

Запустил Aptitude, а затем выполнил поиск «openssl», увидел пакет lib-openssl и установил его.

Повторно запустил CPAN, установил Crypt :: OpenSSL :: RSA, и все прошло гладко.