Я потратил несколько часов, но не смог установить модуль 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, и этот модуль всегда дает сбой.
Предупреждение: предварительное условие 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, и все прошло гладко.