Rhel

如果我不關心 red hat 包中的調試支持,那麼在 specs 文件中關閉 build-id 支持有什麼缺點?

  • February 1, 2022

作為對這個問題的跟進,如果我對擁有這些調試功能不感興趣怎麼辦 - 我如何簡單地阻止安裝這些 build-id 文件(調試資訊包?)?最終,我不關心(至少在不久的將來)支持客戶端調試。另一方面,在同一台機器上安裝我們不同的客戶端 redhat 產品(包)時,我需要克服已知的“build-id 文件夾衝突”。那怎麼能做到呢?

  1. 讀到使用 rpm 安裝時使用 –excludepath=/usr/lib/.build-id/ 是一個乾淨的解決方法。聽起來如此。除了失去“調試功能”之外,您是否看到任何缺點?
  2. --excludepath實際上沒有幫助。但是%define _build_id_links none按照這裡的建議使用。簡而言之,如果我對調試支持不感興趣,那會有多大問題? 在此處輸入連結描述
  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 衝突表示打包問題。如果你正在建構包,你應該修復包中的問題,而不是解決它們。

引用自:https://unix.stackexchange.com/questions/688839