作为对这个问题的跟进,如果我对拥有这些调试功能不感兴趣怎么办 - 我如何简单地阻止安装这些 build-id 文件(调试信息包?)?最终,我不关心(至少在不久的将来)支持客户端调试。另一方面,在同一台机器上安装我们不同的客户端 redhat 产品(包)时,我需要克服已知的“build-id 文件夹冲突”。那怎么能做到呢?
作为对这个问题的跟进,如果我对拥有这些调试功能不感兴趣怎么办 - 我如何简单地阻止安装这些 build-id 文件(调试信息包?)?最终,我不关心(至少在不久的将来)支持客户端调试。另一方面,在同一台机器上安装我们不同的客户端 redhat 产品(包)时,我需要克服已知的“build-id 文件夹冲突”。那怎么能做到呢?
--excludepath=/usr/lib/.build-id
是一个干净的解决方法,是的。据我所知,失去“调试能力”是唯一的缺点。此选项跳过的文件甚至不会导致rpm --verify
失败。然而,失去“调试能力”的后果不仅仅是限制获得有用输出的能力gdb
;例如,如果错误报告工具想要提供有意义的堆栈跟踪,则需要手动干预。%define _build_id_links none
也可以,如果您正在构建包并且不想与它们一起提供调试信息。您的两个问题针对包裹的不同方面。
rpm --excludepath
影响安装包时发生的情况,而%define _build_id_links
影响构建包时发生的情况。如果您对构建软件包感兴趣,那rpm --excludepath
没有帮助是正常的,因为那时它不相关。另请注意,正如您链接到的错误报告所建议的那样,build-id 冲突表示打包问题。如果你正在构建包,你应该修复包中的问题,而不是解决它们。