CentOS RPM包制作原理
时间:2016-05-16 10:43 来源:linux.it.net.cn 作者:IT
有时候为了部署自己的包更方便一些,我们会制作自己的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 #确定包的最终使用平台
(责任编辑:IT)
有时候为了部署自己的包更方便一些,我们会制作自己的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 #确定包的最终使用平台 (责任编辑:IT) |