如何将rpm spec文件进行有效解析?

2026-04-12 03:391阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2233个文字,预计阅读时间需要9分钟。

如何将rpm spec文件进行有效解析?

宏定义说明:- `{_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}

如何将rpm spec文件进行有效解析?

%{_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作为其构建系统,因此构建涉及运行configuremake.宏%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分钟。

如何将rpm spec文件进行有效解析?

宏定义说明:- `{_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}

如何将rpm spec文件进行有效解析?

%{_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作为其构建系统,因此构建涉及运行configuremake.宏%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/