免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4987 | 回复: 3
打印 上一主题 下一主题

[服务应用] 【已解决详见2、3楼】请教在64位CentOS5下rpmbuild在/lib64生成openssl对应so文件问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-06 16:47 |只看该作者 |倒序浏览
本帖最后由 cocke 于 2015-07-09 15:37 编辑

由于需要升级openssh版本,需要先升级openssl,在官网上得到了openssl-0.9.8zg.tar.gz,然后用rpmbuild -bb openssl.spec在64位的CentOS5.3下生成了下列对应的64位rpm包
openssl-0.9.8zg-1.x86_64.rpm
openssl-debuginfo-0.9.8zg-1.x86_64.rpm
openssl-devel-0.9.8zg-1.x86_64.rpm
openssl-doc-0.9.8zg-1.x86_64.rpm
问题是:在实际安装的过程中,安装包不会在/usr/lib64或/lib64下生成libssl.so.0.9.8e等so文件,只会生成在/usr/lib或/lib里。
请问是我rpmbuild的时候少了参数,还是这种打包方式有问题才会导致这个问题出现,怎么解决一下呢?谢谢。

论坛徽章:
0
2 [报告]
发表于 2015-07-08 15:58 |只看该作者
本帖最后由 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下。

论坛徽章:
0
3 [报告]
发表于 2015-07-09 10:54 |只看该作者
本帖最后由 cocke 于 2015-07-14 14:40 编辑

附上更改后的openssl.spec文件,里面包含了openssl-0.9.8zg和openssl-1.0.2d两个版本修改过的spec文件。直接用来编译就可以生成对应的rpm文件


openssl.spec.zip

6.66 KB, 下载次数: 228

论坛徽章:
0
4 [报告]
发表于 2016-04-13 01:35 |只看该作者
感谢提供,下载试试,自己做的spec文件打RPM包之后总是升级报错,不知道问题在哪。回复 3# cocke


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP