标签: rpm-spec

转储 RPM 宏中的“-14”是什么意思

使用以下方法创建 RPM 规范文件时,可以转储可用/定义的宏:

rpm --showrc 或者 rpm --eval %dump

或者%dump在规范文件本身中包含内置宏并检查 RPM 构建过程的输出(构建输出包含宏定义)。

在任何一种情况下,某些行都以“-14”或“-11”为前缀。没有两者的行似乎是多行定义的主体。

此输出中的“-14”(或不太常见的“-11”)有什么意义?更重要的是,我有兴趣知道记录在哪里。

示例输出:

-14: __autoconf autoconf
-14: __autoheader   autoheader
-14: __automake automake
-11= _target_cpu    x86_64
-11= _target_os linux
Run Code Online (Sandbox Code Playgroud)

参考:

rpm rhel rpm-spec

6
推荐指数
1
解决办法
465
查看次数

RPM 安装文件与先前安装冲突

由于文件冲突,我安装失败。我只在 Red Hat Linux 7 上遇到这个问题。相同的规范文件适用于 Ubuntu 和其他 Linux 发行版。

我试图把回音上%pre%post%preun%postun部分,但我从来没有达到过的消息。我%dump在规范文件的开头尝试过,它也没有打印任何内容。如何跟踪规范文件的执行?

%files
%defattr(-,root,root,-)
@CPACK_PACKAGING_INSTALL_PREFIX@/sbin/MyExe
@CPACK_PACKAGING_INSTALL_PREFIX@/share/doc/@CPACK_PACKAGE_FILE_NAME@/myconf.conf
@CPACK_PACKAGING_INSTALL_PREFIX@/share/doc/@CPACK_PACKAGE_FILE_NAME@/README
%if @IS_RHEL7@
/etc/systemd/system/myoverride.conf
%endif
Run Code Online (Sandbox Code Playgroud)

安装过程中出错:

Preparing packages...
    file /etc/systemd/system/myoverride.conf from install of mypackage-5.0.1.x86_64 conflicts with file from package mypackage-4.11.1.x86_64
    file /usr/sbin/myexe from install of mypackage-5.0.1.x86_64 conflicts with file from package mypackage-4.11.1.x86_64
Run Code Online (Sandbox Code Playgroud)

linux rpm rhel rpm-spec

5
推荐指数
1
解决办法
2万
查看次数

我在哪里可以找到原始的 CentOS RPM 规范文件?

最近 CentOS 从 7.5 升级到 7.6,现在其中一个软件包升级到更新版本,我还没有准备好使用。我打算改为构建和支持此软件包的旧版本。

我想知道是否有办法提取或查看(甚至可能是版本化的)原始规范文件,从中构建 CentOS 软件包。是否有用于构建官方 EPEL 包的规范文件的源代码存储库?

rpm centos rpm-spec

5
推荐指数
1
解决办法
1708
查看次数

如果我不关心红帽软件包中的调试支持,那么在规范文件中关闭 build-id 支持有什么缺点?

作为这个问题的后续,如果我对这些调试功能不感兴趣怎么办 - 如何简单地阻止安装这些 build-id 文件(调试信息包?)?最终我不关心(至少在不久的将来)支持客户端调试。另一方面,在同一台机器上安装不同的客户端 Redhat 产品(包)时,我需要克服已知的“build-id 文件夹冲突”。如何才能做到这一点?

  1. 读到,使用 rpm 安装时使用 --excludepath=/usr/lib/.build-id/ 是一个干净的解决方法。听起来是这样。除了失去“调试功能”之外,您是否看到任何缺点?

  2. --excludepath实际上没有帮助。但%define _build_id_links none按照这里的建议使用了。简而言之,如果我对调试支持不感兴趣,那么问题有多大? 在此输入链接描述

rpm packaging rhel rpmbuild rpm-spec

3
推荐指数
1
解决办法
1866
查看次数

%dir 似乎在规范文件中不起作用

这是我的理解,%dir如果我有的话

%files
%dir /foo/bar
Run Code Online (Sandbox Code Playgroud)

我现在不必单独列出/foo/bar. 然而,当我在 OBS 中构建 RPM 时,我得到了,

error: Installed (but unpackaged) file(s) found:
   /foo/bar/baz
   /foo/bar/quz
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种情况?

rpm rpm-spec

2
推荐指数
1
解决办法
1826
查看次数

标签 统计

rpm ×5

rpm-spec ×5

rhel ×3

centos ×1

linux ×1

packaging ×1

rpmbuild ×1