手机版
你好,游客 登录 注册
背景:
阅读新闻

CentOS RPM包制作原理

[日期:2013-12-22] 来源:oschina.net  作者:guol [字体: ]

有时候为了部署自己的包更方便一些,我们会制作自己的RPM包,制作RPM包都有哪些步骤呢,学习这些步骤就是本文的目的。在CentOS下制作RPM包依赖rpm-build这个包,所以需要提前安装好该软件包。

RPM生成要素

  1. 生成rpm所用的文件列表或者源代码
  2. 根据文件列表或者源代码生成rpm规范,也就是spec文件
  3. 根据spec文件加工源码/文件的工具rpmbuild

RedHat下,rpm包的默认制作路径在/usr/src/redhat下:

/usr/src/redhat
--BUILD #编译之前,如解压包后存放的路径
--BUILDROOT #编译后存放的路径
--RPMS #打包完成后rpm包存放的路径
--SOURCES #源包所放置的路径
--SPECS #spec文档放置的路径
--SPRMS #源码rpm包放置的路径

centos并没有该目录,这可咋办,其实在那个目录制作rpm是没有关系的,只要设置好配置文件就行。一般我们都把源码打包成tar.gz格式然后存放于SOURCES路径下,而在SPECS路径下编写spec文档,通过命令打包后,默认会把打包后的rpm包放在RPMS下,而源码包会被放置在SRPMS下。

先看看rpmbuild命令的用法:

1 从spec文档建立有以下选项:

-bp  #只执行spec的%pre 段(解开源码包并打补丁,即只做准备)
-bc  #执行spec的%pre和%build 段(准备并编译)
-bi  #执行spec中%pre,%build与%install(准备,编译并安装)
-bl  #检查spec中的%file段(查看文件是否齐全)
-ba  #建立源码与二进制包(常用)
-bb  #只建立二进制包(常用)
-bs  #只建立源码包

2 从tarball包建立,与spec类似

-tp #对应-bp
-tc #对应-bc
-ti #对应-bi
-ta #对应-ba
-tb #对应-bb
-ts #对应-bs

3 从源码包建立

--rebuild  #建立二进制包,通-bb
--recompile  #同-bi

* rpmbuild的其他参数

--buildroot=DIRECTORY  #确定以root目录建立包
--clean  #完成打包后清除BUILD下的文件目录
--nobuild  #不进行%build的阶段
--nodeps  #不检查建立包时的关联文件
--nodirtokens
--rmsource  #完成打包后清除SOURCES
--rmspec #完成打包后清除SPEC
--short-cricuit
--target=CPU-VENDOR-OS #确定包的最终使用平台

相关阅读:

制作自己的rpm包 http://www.linuxidc.com/Linux/2013-06/86435.htm

Linux 下rpm安装后的目录结构和一些配置 http://www.linuxidc.com/Linux/2013-06/85761.htm

rpm与yum的综合性介绍与示例演示 http://www.linuxidc.com/Linux/2013-05/84480.htm

Redhat Linux---rpm 命令详解 http://www.linuxidc.com/Linux/2013-03/81971.htm

linux
相关资讯       RPM  Centos RPM包制作 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款