https://blog.csdn.net/zhangna20151015/article/details/50401715
spec文件是执行rpm-build时用到的配置信息文件。
%define name foo #名字
%define version 1.2 #version
Name: %{name} #name 就是使用的上面的宏指令
Version: %{version} #version 也是使用的上面的宏指令
Release: 3
License: GPL
Group: Applications/Productivity # 软件是哪个组的,更多信息查看 /usr/share/doc/rpm-version/GROUPS
URL: www.baidu.com
Summary: A fictional open source package for the offering. #摘要
BuildRoot: %{_builddir}/%{name}-root #安装编译时使用的“虚拟目录”,后面可以使用$RPM_BUILD_ROOT
Autoreq:no
%description #描述
%install #用来做 rpm 安装所有需要的文件,开始把软件安装到虚拟的根目录中
%pre #预处理
%build # 开始构建包
%post #rpm安装后执行的脚本
%preun #rpm卸载前执行的脚本
# 停止服务
%postun #rpm卸载后执行的脚本
# 删除文件夹
%file # 任何打包的文件,都需要在这个包的详细的文件列表中
%defattr() # %defattr(mode,user,group)
$RPM_BUILD_ROOT 参数来设置 BuildRoot.主要不能使用真实目录来设置的主要原因是,在编译的过程中有可能会有文件替换到你系统中的文件引起系统和软件问题.对其它的文件路径象在 %{_mandir}, %{_bindir} , %{_sysconfdir} 等等,都是使用预先定义的宏来指定的. 默认都是跑在这个 RPM_BUILD_ROOT 目录下的。