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

Vev*_*rke 3 rpm packaging rhel rpmbuild rpm-spec

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

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

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

Ste*_*itt 5

    \n
  1. --excludepath=/usr/lib/.build-id是一个干净的解决方法,是的。据我\xe2\x80\x99m所知,失去\xe2\x80\x9cdebug功能\xe2\x80\x9d唯一的缺点;此选项跳过的文件\xe2\x80\x99甚至不会导致rpm --verify失败。然而,失去 \xe2\x80\x9cdebug 功能\xe2\x80\x9d 的后果超出了限制获得有用输出的能力gdb;例如,如果错误报告工具想要提供有意义的堆栈跟踪,则需要手动干预。

    \n
  2. \n
  3. %define _build_id_links none如果您\xe2\x80\x99 正在构建软件包并且您不想\xe2\x80\x99 不想随它们一起提供调试信息,也可以。

    \n
  4. \n
\n

您的两个问题针对包的不同方面。影响安装rpm --excludepath包时发生的情况,而影响构建包时发生的情况。如果您对构建软件包感兴趣,那么 xe2x80x99 很正常,但没有帮助,因为那时它不相关。%define _build_id_linksrpm --excludepath

\n

另请注意,正如您链接到的错误报告所建议的,构建 ID 冲突表明打包问题。如果您\xe2\x80\x99正在构建软件包,则应该修复软件包中的问题,而不是解决它们。

\n