宏定义
定义
注释
%{_sysconfdir}
/etc
%{_prefix}
/usr
can be defined to /app
for flatpak builds
%{_exec_prefix}
%{_prefix}
default: /usr
%{_includedir}
%{_prefix}/include
default: /usr/include
%{_bindir}
%{_exec_prefix}/bin
default: /usr/bin
%{_libdir}
%{_exec_prefix}/%{_lib}
default: /usr/%{_lib}
%{_libexecdir}
%{_exec_prefix}/libexec
default: /usr/libexec
%{_sbindir}
%{_exec_prefix}/sbin
default: /usr/sbin
%{_datadir}
%{_datarootdir}
default: /usr/share
%{_infodir}
%{_datarootdir}/info
default: /usr/share/info
%{_mandir}
%{_datarootdir}/man
default: /usr/share/man
%{_docdir}
%{_datadir}/doc
default: /usr/share/doc
%{_rundir}
/run
%{_localstatedir}
/var
%{_sharedstatedir}
/var/lib
%{_lib}
lib64
lib
on 32bit platforms
%description
通常可以从上游自述文件中复制。
%prep
包含一个用于准备构建源的 shell 脚本。它通常只是单个宏%autosetup
,在这种情况下,它只是提取源代码。
%build
包含所需构建步骤的 shell 脚本,例如将源代码编译为二进制文件。GNU Hello 使用Autotools作为其构建系统,因此构建涉及运行configure
和make
. 宏%configure
并%make_build
使用 Fedora 的编译标志和其他配置调用这些命令。
%install
包含一个 shell 脚本,用于将结果复制%build
到最初为空的构建根目录中。由于 GNU Hello 使用 Autotools,因此%make_install
使用了宏。
%files
列出生成的包的内容。大多数情况下,这些文件来自在 中创建的构建根目录%install
,但也可以直接从源添加文档和许可证文件。
该%changelog
文档记录了每个新软件包版本和发行版中的更改。更改日志数据可以通过 显示rpm --query --changelog PACKAGE_NAME
,这很有用,例如,可以查明是否包含特定的错误和安全补丁。它的值%autochangelog
也来自rpmautospec
。它从 Git 提交消息填充变更日志。由于我们没有 Git 存储库,因此变更日志将为空。
https://rpm-software-management.github.io/rpm/manual/spec.html
https://docs.fedoraproject.org/en-US/package-maintainers/Packaging_Tutorial_GNU_Hello/
https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/