Spec文件参数简述

Spec文件用于告诉rpmbuild如何构建RPM或者SRPM包RPM,SRPM区别参见鸟哥的Linux私房菜
。Spec文件包含preamble和body两部分,preamble部分主要包含一些包的元数据,body部分主要用于打包,安装等。

Preamble参数说明:


preamble.png

构建后的包名为N-V-R(NAME-VERSION-RELEASE)

  • Source SOURCES目录下的文件(多个时编号Source0, Source1 ...)RPM只关注最后的文件名,(eg:ftp://example/pkg.tgz)只要SOURCES目录下有pkg.tgz文件即可,前面可用于标识这个tar包去哪获取

  • Patch 和Source文件一样,标识位于SOURCES目录下的patch文件(可以有多个),一般用于在%prep过程中给源码打补丁,可以通过%patch0, %patch1来进行打补丁,或者使用%autosetup来自动打定义了的patch,参见

  • BuildArch 编译架构,noarch代表没特定架构,例如解释性语言(python等)编写的源码

  • ...

Body参数说明:


body.png
  • %prep 用于创建构建环境
  • %build 用于编译源码
  • %install 用于安装
  • %files 没在%file下面的文件不会放进rpm包
  • %clean 用于清理build过程中产生的文件和目录

BuildRoots
buildroot相当于系统“/”目录,里面的文件结构,最后在rpm安装的时候会按照buildroot目录下的文件层级结构安装到”/“目录下。


参考文献
rpm packaging guide
rpm doc

你可能感兴趣的:(Spec文件参数简述)