- 论坛徽章:
- 0
|
本帖最后由 cocke 于 2015-07-08 15:58 编辑
回复 1# cocke
原题目我是用的openssl-0.9.8zg,后来的几台机器我下了最新的openssl-1.0.2c,解决的步骤是一样的!
最后搜索到这个问题是openssl.spec的一个bug,具体链接参见http://marc.info/?l=openssl-dev&m=133077751603116
下载http://marc.info/?l=openssl-dev&m=133077751603116&q=p4后, patch -p0 <openssl.spec-lib64.patch,这个补丁是针对openssl1.0.1版本的,实际打补丁的时候需要手动填写源文件路径。
这个补丁的原理是在原openssl.spec的基础上增加了对系统版本的判断,
@@ -119,7 +119,14 @@
%doc CHANGES CHANGES.SSLeay LICENSE NEWS README
%attr(0755,root,root) /usr/bin/*
+%ifarch i686
%attr(0755,root,root) /usr/lib/*.so*
+%attr(0755,root,root) /usr/lib/engines/*.so*
+%endif
+%ifarch x86_64
+%attr(0755,root,root) /usr/lib64/*.so*
+%attr(0755,root,root) /usr/lib64/engines/*.so*
+%endif
%attr(0755,root,root) %{openssldir}/misc/*
%attr(0644,root,root) /usr/man/man[157]/*
@@ -132,8 +139,14 @@
%defattr(0644,root,root,0755)
%doc CHANGES CHANGES.SSLeay LICENSE NEWS README
+%ifarch i686
%attr(0644,root,root) /usr/lib/*.a
-%attr(0644,root,root) /usr/lib/pkgconfig/openssl.pc
+%attr(0644,root,root) /usr/lib/pkgconfig/
+%endif
+%ifarch x86_64
+%attr(0644,root,root) /usr/lib64/*.a
+%attr(0644,root,root) /usr/lib64/pkgconfig/
+%endif
%attr(0644,root,root) /usr/include/openssl/*
%attr(0644,root,root) /usr/man/man[3]/*
打完补丁后,再次rpmbuild -bb openssl.spec即可生成正确的rpm文件。
rpm -qlp openssl-1.0.2c-1.x86_64.rpm
/usr/bin/c_rehash
/usr/bin/openssl
/usr/bin/ssleay
/usr/lib64/engines/lib4758cca.so
/usr/lib64/engines/libaep.so
/usr/lib64/engines/libatalla.so
/usr/lib64/engines/libcapi.so
/usr/lib64/engines/libchil.so
/usr/lib64/engines/libcswift.so
/usr/lib64/engines/libgmp.so
/usr/lib64/engines/libgost.so
/usr/lib64/engines/libnuron.so
/usr/lib64/engines/libpadlock.so
/usr/lib64/engines/libsureware.so
/usr/lib64/engines/libubsec.so
/usr/lib64/libcrypto.so
/usr/lib64/libcrypto.so.1.0.0
/usr/lib64/libssl.so
/usr/lib64/libssl.so.1.0.0
可以看到64位的操作系统已经将相应的so文件安装在/usr/lib64下了,而不是补丁之前的/usr/lib下。
|
|