如何将rpm spec文件进行有效解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2233个文字,预计阅读时间需要9分钟。
宏定义说明:- `{_sysconfdir}`:配置文件目录,默认为`/etc`- `{_prefix}`:安装前缀,默认为`/usr`- `{_exec_prefix}`:执行前缀,默认为`/usr`- `{_includedir}`:包含目录,默认为`/usr/include`- `{_bindir}`:二进制目录,默认为`/usr/bin`
宏定义
定义
注释
%{_sysconfdir}
/etc
%{_prefix}
/usr
can be defined to/appfor 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
libon 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 存储库,因此变更日志将为空。
rpm-software-management.github.io/rpm/manual/spec.html
docs.fedoraproject.org/en-US/package-maintainers/Packaging_Tutorial_GNU_Hello/
docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
本文共计2233个文字,预计阅读时间需要9分钟。
宏定义说明:- `{_sysconfdir}`:配置文件目录,默认为`/etc`- `{_prefix}`:安装前缀,默认为`/usr`- `{_exec_prefix}`:执行前缀,默认为`/usr`- `{_includedir}`:包含目录,默认为`/usr/include`- `{_bindir}`:二进制目录,默认为`/usr/bin`
宏定义
定义
注释
%{_sysconfdir}
/etc
%{_prefix}
/usr
can be defined to/appfor 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
libon 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 存储库,因此变更日志将为空。
rpm-software-management.github.io/rpm/manual/spec.html
docs.fedoraproject.org/en-US/package-maintainers/Packaging_Tutorial_GNU_Hello/
docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/

