Apa tujuan dari /usr/lib/.build-id/ dir?


10

Setelah inst baru f27 (netinstall) saya perhatikan bahwa banyak pkgs menempatkan file kecil dalam /usr/lib/.build-id/direktori. Pada tanggal 1 saya pikir saya entah bagaimana telah mengaktifkan beberapa mode "debug" tidak jelas untuk dnf, tetapi bahkan

$ dnf download httpd

mengambil rpm w / /usr/lib/.build-id/*file di dalamnya.

Saya tidak ingat ini di rel Fedora sebelumnya.


rpm --query --file /usr/lib/.build-iddaftar banyak paket "memiliki" /usr/lib/.build-id... aneh.
David Tonhofer

Jawaban:


22

/usr/lib/.build-idberisi 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, stripdan objcopytelah 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-idsana) 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_debuglinkbagian). Anda akan menemukan penjelasan terperinci tentang alasan di balik semua ini dalam deskripsi fitur Fedora build-id .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.