安装 Perl Crypt::OpenSSL::RSA 模块时出错

Wil*_*lly 4 perl cpan

我花了几个小时但无法安装 CPAN Crypt::OpenSSL::RSA 模块。Postfix 的 dkimproxy 附加组件需要它。

我所做的是在shell中运行以下命令:

$ perl -MCPAN -e 'install Crypt::OpenSSL::RSA'
Run Code Online (Sandbox Code Playgroud)

当我运行这个命令时,会显示几行,最后显示:

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] 
Run Code Online (Sandbox Code Playgroud)

然后我按回车键(是),然后生成了几十行错误。最后我得到了这个:

...
...
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
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?请指导我。谢谢。

小智 9

我自己刚刚在 CentOS 5.4 上遇到了这个问题,我没有安装 openssl-devel!所以运行:

yum install openssl-devel

为我修好了

或者,如果您使用的是基于 debian 的东西:

sudo apt-get install libssl-dev


小智 1

您在某处缺少标头。在输出中发布的内容上方,您应该会看到对丢失的 .h 文件的引用。找出哪个包提供了该特定标头,您就更近了一步。起泡沫...冲洗...重复,最终它会编译:)