/usr/lib/.build-id
berisi file build-id utama untuk paket yang diinstal. Sebelum Fedora 27, ini tinggal berdampingan dengan file debug /usr/lib/debug
, dan hanya dikirim dalam debug RPM. Di Fedora 27, perubahan diperkenalkan untuk memungkinkan pemasangan paralel dari beberapa paket info debug. Bagian dari perubahan itu melibatkan pengiriman file build-id utama dalam paket yang cocok, untuk memastikan bahwa mereka cocok dengan binari yang diinstal.
Paket info debug digunakan di banyak distribusi untuk menyediakan cara bagi pengguna untuk menginstal informasi debug jika perlu, tanpa membengkak biner untuk semua orang. Ketika sebuah program atau pustaka dibangun dan ditautkan, ia dapat dibangun dengan informasi debug, yang kemudian dapat digunakan para debugger untuk memetakan lokasi dalam biner dengan lokasi dalam kode sumbernya; tetapi informasi ini membutuhkan banyak ruang. Jadi informasi debug biasanya dihapus dari binari sebelum dikemas. Dalam beberapa tahun terakhir, strip
dan objcopy
telah ditingkatkan sehingga informasi debug dapat diekstraksi dan disimpan secara terpisah - itulah cara paket info debug dibuat. Yang diperlukan kemudian adalah beberapa cara untuk memastikan bahwa biner dan informasi debug-nya sesuai, dan di situlah ids build masuk - mereka adalah pengidentifikasi unik yang dihitung olehld
(cari di --build-id
sana) atas bagian signifikan dari biner. “File build-id utama” adalah symlink dari build id ke file info biner atau debug yang sesuai; mereka memungkinkan pemetaan dua arah untuk diimplementasikan, sehingga dump inti dapat bermanfaat debugged (ada link dari binari ke id build mereka di binaries sendiri, di .gnu_debuglink
bagian). Anda akan menemukan penjelasan terperinci tentang alasan di balik semua ini dalam deskripsi fitur Fedora build-id .
rpm --query --file /usr/lib/.build-id
daftar banyak paket "memiliki"/usr/lib/.build-id
... aneh.