文章插图
修改成功后再重新编译后检查,重新验证二进制 RPM 正确性,error 数量为 0,如下图 23 所示:
图 23. 验证二进制 RPM 的正确性
文章插图
最后,安装编译好的 rpm 包并运行程序进行验证,如下图 24 所示:
图 24. 安装二进制 RPM 包并执行程序
文章插图
我们看到,上图中执行 bello 程序成功,证明 RPM 安装成功 。
如何在异构环境重新编译 RPM在前文中我们已经提到,有的 RPM 包与运行环境有关,有的无关 。如果一个 RPM 依赖于某一个版本的运行环境(linux 版本或处理器架构),我们如何让这个 RPM 在其他的环境中运行?这涉及到异构环境下的 RPM 重新编译 。
Mock 是一个用于构建 RPM 包的工具(就像 Docker 启动一个 build 的环境一样,摆脱对编译环境 linux 版本的限制) 。它可以为不同的架构、Linux 版本构建 RPM 软件包 。在 RHEL 系统上使用 Mock,需要启用"Extra Packages for Enterprise Linux"(EPEL)存储库 。
针对 RPM 包,Mock 最常见的用例之一是创建原始的构建环境 。通过指定不同的配置文件(/etc/mock 目录下)即模拟使用不同的构建环境 。
查看 mock 配置文件,如下图 25 所示:
图 25. 查看 mock 配置文件
文章插图
我们以 epel-7-x86_64.cfg 为例,查看其中关于架构的描述,如清单 8 所示,可以看到是 x86_64 和红帽 Linux 发行版 7 的信息:
清单 8. 查看 epel-7-x86_64.cfg 配置文件中架构信息
[root@master mock]# cat epel-7-x86_64.cfg|grep -i archconfig_opts['target_arch'] = 'x86_64'config_opts['legal_host_arches'] = ('x86_64',)mirrorlist=http://mirrorlist.centos.org/?release=7& arch=x86_64& repo=osmirrorlist=http://mirrorlist.centos.org/?release=7& arch=x86_64& repo=updatesmirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-7& arch=x86_64mirrorlist=http://mirrorlist.centos.org/?release=7& arch=x86_64& repo=extrasmirrorlist=http://mirrorlist.centos.org/?release=7& arch=x86_64& repo=sclo-rhmirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=testing-epel7& arch=x86_64mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-7& arch=x86_64
使用 epel-7-x86_64 配置来构建 SRPM,如下图 26 所示:图 26. 使用 epel-7-x86_64 构建二进制 RPM
文章插图
使用 epel-6-x86_64 配置来构建 SRPM,如下图 27 所示:
图 27. 使用 epel-6-x86_64 构建二进制 RPM查看构建好的二进制 rpm:
cello-1.0-1.el6.x86_64.rpm,如下图 28 所示:
图 28. 查看构建好的二进制 RPM
文章插图
安装
cello-1.0-1.el6.x86_64.rpm,如下图所示:
图 29. 安装构建好的二进制 RPM点击查看大图
查看构建好的二进制 RPM
cello-1.0-1.el7.x86_64.rpm,并进行安装验证,如下图 30 所示:
图 30. 安装构建好的二进制 RPM
文章插图
至此,在异构环境下重新编译二进制 RPM 成功 。
结束语通过本文,相信您对通过源码构建成 RPM 有了较为深刻的理解 。随着开源理念的不断普及,越来越多的客户将业务系统从 windows 迁移到 Linux 上,理解了 Linux 中的 RPM 打包方式,会对以后我们日常的工作有很大的帮助 。
原文:
https://www.ibm.com/developerworks/cn/linux/l-lo-rpm-build-package/index.html
推荐阅读
- Linux 5.7内核新特性介绍
- 家中wifi网络老不好?救星来了
- Javascript中操作String字符串的33种方法,你都知道吗?
- 茶的存储注意事项,谭洋功夫茶饮用中的注意事项
- 分享几款免费的连接Linux的使用工具
- linux服务器上创建mysql5.7定时任务,实现自动发布文章
- 茶馆在中国的出现,茶坊在古代与现代的介绍
- 穿衣搭配|中性女生应该如何穿搭,才不过于浮夸,显得年轻又时尚?
- 顶谷大方茶好喝吗,大方茶中的上品顶谷大方茶
- 大陆游客不来,中国茶叶博物馆推出猜茶谜