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

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

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

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

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

答案1

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

  2. %define _build_id_links none如果您正在构建软件包并且不想随它们一起发送调试信息,那么也可以。

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

还要注意的是,正如建议的那样您链接到的错误报告,build-id冲突表明打包问题。如果您正在构建软件包,则应该解决软件包中的问题,而不是解决它们。

相关内容