变量说明
最后更新于:2022-04-02 03:54:40
[TOC]
## 变量说明
```
%define 定义宏变量如: %define im_user_dir /home/im_user/ ,通过使用 %{im_user_dir} 调用
%setup
不加任何选项,仅将软件包打开。
-n newdir 将软件包解压在newdir目录。
-c 解压缩之前先产生目录。
-b num 将第num个source文件解压缩。
-T 不使用default的解压缩操作。
T -b 0 将第0个源代码文件解压缩。
-c -n newdir 指定目录名称newdir,并在此目录产生rpm套件。
%files 此部分列出了需要被打包的文件和目录
使用变量来设置路径
如: buildroot//usr/sbin/mycommand 使用 %{_sbindir}/mycommand
%defattr
%defattr(-,root,root,-) "-"表示默认权限 在顶部说明,表示所有文件继承此权限
%attr(0644, root, root) FOO.BAR 指定个别文件的权限
%doc
用于列出 %{_builddir} 内,但不复制到 %{buildroot}.
如 %doc AUTHORS ChangeLog NEWS README THANKS TODO
%exclude
获取所有的文件使用 "/*" 配合 %exclude 进行排除
%config(noreplace) %{_sysconfdir}/foo.conf 确保 /etc 下的目录更新时不被覆盖
%config %{_sysconfdir}/foo.conf 进行覆盖
// 目录变量
%{_topdir} %{getenv:HOME}/rpmbuild
%{_builddir} %{_topdir}/BUILD
%{_rpmdir} %{_topdir}/RPMS
%{_sourcedir} %{_topdir}/SOURCES
%{_specdir} %{_topdir}/SPECS
%{_srcrpmdir} %{_topdir}/SRPMS
%{_buildrootdir} %{_topdir}/BUILDROOT
// 主要用于把 build 移动到 buildroot
%{buildroot} %{_topdir}/BUILDROOT/包名-版本-1.el7.centos.架构/
%{_sysconfdir} /etc
%{_prefix} /usr
%{_exec_prefix} /usr
%{_bindir} /usr/bin
%{_lib} lib (lib64 on 64bit systems)
%{_libdir} /usr/lib64 or /usr/lib64
%{_libexecdir} /usr/libexec
%{_sbindir} /usr/sbin
%{_sharedstatedir} /var/lib
%{_datadir} /usr/share
%{_includedir} /usr/include
%{_oldincludedir} /usr/include
%{_infodir} /usr/share/info
%{_mandir} /usr/share/man
%{_localstatedir} /var
%{_initddir} /etc/rc.d/init.d
%{_var} /var
%{_tmppath} /var/tmp
%{_usr} /usr
%{_usrsrc} /usr/src
%{_docdir} /usr/share/doc
```
';