spec文件(规范配置文件),rpm编译过程的核心处理文件。
spec文件说明了软件包如何被配置,补缀哪些补丁,安装哪些文件,被安装到哪里,在安装该包之前或之后需要运行那些系统级别的活动。
spec通常以utf-8格式编码。
spec宏 vs rpm变量
在 spec 文件中有两种定义编译根目录和优化参数的风格。
|
宏风格 |
变量风格 |
编译根目录 |
%buildroot |
$RPM_BUILD_ROOT |
优化参数 |
%optflags |
$RPM_OPT_FLAGS |
两者都是正确的,但打包者应该选取一种风格并持续的在打包生涯中使用。这里推荐宏风格。
定义: %define myname tongyishu
使用: %{myname}
spec文件中常见字段的解释:
字段 |
含义 |
Name |
软件名称 |
Version |
版本号 |
Release |
发布号 |
Summary |
软件包简介 |
License |
发布许可 |
Source |
源代码包 |
URL |
源代码获取地址 |
BuildRoot |
临时安装目录 |
BuildRequires |
构建时需要的依赖 |
Requires |
运行时需要的依赖 |
%description |
相关描述 |
%setup –q |
以静默模式进行 |
%build |
编译阶段 |
%install |
安装阶段 |
%pre |
安装前执行的脚本 |
%preun |
卸载前执行的脚本 |
%post |
安装后执行的脚本 |
%postun |
卸载后执行的脚本 |
%clean |
清理阶段 |
%files |
rpm包含的文件 |
%changelog |
修改日志 |
%defattr |
设置文件属性 |
%prep |
预处理标签 |