在Fedora 21上安装OpenSSL 1.0.2时make test步骤失败,求助
解决Fedora 21编译OpenSSL 1.0.2时
make test的CMS验证错误 我之前在老版本Fedora上编译OpenSSL 1.0.x系列时也碰到过这个CMS测试失败的问题,大概率是系统自带的旧版OpenSSL库和你正在编译的版本产生了冲突,或者是测试脚本对特定环境的兼容性问题。给你几个可行的解决思路:
方法一:跳过单个失败的测试(最快解决)
如果只是这个CMS测试失败,其他测试都能正常通过,你可以直接跳过这个测试项,继续完成后续的安装流程:
make TESTS="-notest_cms" test
执行这个命令后,测试会跳过test_cms相关的用例,完成剩余测试后就可以正常执行make install了。
方法二:指定独立编译路径,避免系统库干扰
系统自带的OpenSSL库可能会在测试时被优先调用,导致兼容性问题。你可以重新配置编译参数,把OpenSSL安装到独立的目录,确保编译和测试全程使用自己构建的版本:
- 先清理之前的编译文件:
make clean - 重新配置编译选项:
./config --prefix=/usr/local/openssl-1.0.2 --libdir=/usr/local/openssl-1.0.2/lib - 重新编译并测试:
make make test
这样编译出来的OpenSSL会完全独立于系统自带版本,测试时不会受到旧库的干扰。
方法三:修改测试脚本(针对特定测试用例)
如果你想深究这个测试失败的原因,可以尝试修改测试脚本。进入OpenSSL源码的test目录,编辑cms-test.pl文件:
- 找到对应"RSA key: verify error"的测试用例段,尝试注释掉该组测试,或者调整验证参数(比如修改签名/验证的算法选项)。
不过这个方法需要你对Perl脚本和OpenSSL CMS机制有一定了解,适合有经验的用户尝试。
另外补充一点:安装完成后,如果你想让系统优先使用这个新版本的OpenSSL,可以通过设置LD_LIBRARY_PATH临时生效,或者在/etc/ld.so.conf.d/下新建配置文件,添加/usr/local/openssl-1.0.2/lib路径,然后执行ldconfig更新系统库缓存。
内容的提问来源于stack exchange,提问作者T1412
相关产品推荐
相关产品推荐

