Nach einer neuen Instanz von f27 (netinstall) bemerkte ich, dass viele pkgs winzige Dateien in /usr/lib/.build-id/
dir ablegen . Am 1. dachte ich, ich hätte irgendwie einen obskuren "Debug" -Modus für dnf aktiviert, aber sogar
$ dnf download httpd
ruft eine Drehzahl mit /usr/lib/.build-id/*
Dateien ab.
Ich erinnere mich nicht daran in den vorherigen Fedora-Rel.
rpm --query --file /usr/lib/.build-id
listet eine Menge Pakete "besitzen"/usr/lib/.build-id
... seltsam.Antworten:
/usr/lib/.build-id
enthält die wichtigsten Build-ID-Dateien für installierte Pakete. Vor Fedora 27/usr/lib/debug
befanden sich diese neben den Debug-Dateien in und wurden nur in Debug-RPMs ausgeliefert. In Fedora 27 wurde eine Änderung eingeführt , um die parallele Installation mehrerer Debug-Info-Pakete zu ermöglichen. Ein Teil dieser Änderung besteht darin, die wichtigsten Build-ID-Dateien in dem Paket zu versenden, mit dem sie übereinstimmen, um sicherzustellen, dass sie mit den installierten Binärdateien übereinstimmen.Debug-Info-Pakete werden in vielen Distributionen verwendet, um Benutzern die Möglichkeit zu geben, Debugging-Informationen bei Bedarf zu installieren, ohne die Binärdateien für alle aufzublähen. Wenn ein Programm oder eine Bibliothek erstellt und verknüpft wird, kann es mit Debugging-Informationen erstellt werden, mit denen Debugger dann Positionen in der Binärdatei mit Positionen im Quellcode zuordnen können. Diese Informationen nehmen jedoch viel Platz ein. Daher werden Debugging-Informationen normalerweise aus den Binärdateien entfernt, bevor sie gepackt werden. In der letzten Jahren
strip
undobjcopy
wurde erweitert , so dass Debug - Informationen extrahieren und separat gespeichert werden können - das ist , wie Debug - Info - Pakete erstellt werden. Alles, was dann benötigt wird, ist eine Möglichkeit, um sicherzustellen, dass eine Binärdatei und ihre Debug-Informationen übereinstimmen, und hier kommen Build-IDs ins Spiel - sie sind eindeutige Bezeichner, die von berechnet werdenld
(suchen Sie--build-id
dort) über die signifikanten Teile einer Binärdatei. "Haupt-Build-ID-Dateien" sind Symlinks von einer Build-ID zur entsprechenden Binär- oder Debug-Info-Datei. Sie ermöglichen die Implementierung von bidirektionalen Zuordnungen, sodass Core-Dumps sinnvoll debuggt werden können (es gibt eine Verknüpfung von Binärdateien zu ihren Build-IDs in den Binärdateien selbst im.gnu_debuglink
Abschnitt). Eine ausführliche Erklärung der Gründe dafür finden Sie in der Beschreibung der Fedora-Build-ID-Funktionen .quelle