Яка мета /usr/lib/.build-id/ dir?


10

Після нового введення f27 (netinstall) я помітив, що багато pkgs поміщають крихітні файли в /usr/lib/.build-id/dir. Спочатку я думав, що я якось увімкнув якийсь незрозумілий режим налагодження для dnf, але навіть

$ dnf download httpd

отримує в ньому rpm w / /usr/lib/.build-id/*файли.

Я не пам'ятаю цього в попередніх реле Fedora.


rpm --query --file /usr/lib/.build-idперелічує тонну пакетів, що "володіють" /usr/lib/.build-id... дивно.
Девід Тонхофер

Відповіді:


22

/usr/lib/.build-idмістить основні файли збірки id для встановлених пакетів. До Fedora 27 вони /usr/lib/debugпрацювали поряд з налагоджуваними файлами в , а постачалися лише в RPM з налагодженням. У Fedora 27 було внесено зміни, що дозволяють паралельно встановлювати декілька інформаційних пакетів налагодження. Частина цієї зміни включає доставку основних файлів збірки id у пакеті, який вони відповідають, щоб переконатися, що вони відповідають встановленим бінарним файлам.

Інформаційні пакети налагодження використовуються у багатьох дистрибутивах, щоб забезпечити можливість користувачам встановлювати інформацію про налагодження, коли це необхідно, без роздуття бінарних файлів для всіх. Коли програма чи бібліотека побудована та пов'язана, вона може бути побудована з інформацією про налагодження, яку потім налагоджувачі можуть використовувати для картографування місць у бінарному файлі з розташуваннями у вихідному коді; але ця інформація займає багато місця. Таким чином, інформація про налагодження зазвичай знімається з двійкових файлів перед їх упаковкою. В останні роки, stripі objcopyбули вдосконалені таким чином , що інформація про налагодженні можуть бути вилучені і збережені окремо - це, як будуються налагоджувати інформація пакети. Все, що потрібно тоді, - це певний спосіб забезпечити відповідність двійкового файлу та його налагоджувальну інформацію, і саме тут входять ідентифікатори збірки - це унікальні ідентифікатори, обчислені заld(шукайте --build-idтам) над значними частинами двійкового. "Основні файли ідентифікації збірки" - це посилання від ідентифікатора збірки до відповідного бінарного або інформаційного файлу налагодження; вони дозволяють реалізувати двосторонні відображення, так що основні скиди можуть бути корисними налагодженими (у розділі є посилання від двійкових файлів до їхніх ідентифікаторів збирання у самих бінарних файлах .gnu_debuglink). Ви знайдете детальне пояснення обґрунтування всього цього в описі функції Fedora build-id .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.