Spec文件参数简述
2020-09-03 本文已影响0人
Shawn_Lu_0127
Spec文件用于告诉rpmbuild如何构建RPM或者SRPM包RPM,SRPM区别参见鸟哥的Linux私房菜
。Spec文件包含preamble和body两部分,preamble部分主要包含一些包的元数据,body部分主要用于打包,安装等。
Preamble参数说明:

构建后的包名为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参数说明:

- %prep 用于创建构建环境
- %build 用于编译源码
- %install 用于安装
- %files 没在%file下面的文件不会放进rpm包
- %clean 用于清理build过程中产生的文件和目录
BuildRoots
buildroot相当于系统“/”目录,里面的文件结构,最后在rpm安装的时候会按照buildroot目录下的文件层级结构安装到”/“目录下。