/usr/lib/.build-id
kurulu paketler için ana yapı kimliği dosyalarını içerir. Fedora 27'den önce, bunlar hata ayıklama dosyalarıyla birlikte yaşadı /usr/lib/debug
ve yalnızca hata ayıklama RPM'lerinde gönderildi. Fedora 27'de, birden çok hata ayıklama bilgi paketinin paralel kurulumuna izin veren bir değişiklik yapıldı . Bu değişikliğin bir kısmı, kurulu ikili dosyalarla eşleştiklerinden emin olmak için ana derleme kimlik dosyalarını eşleştikleri pakette göndermeyi içerir.
Hata ayıklama bilgi paketleri, birçok dağıtımda, kullanıcıların gerektiğinde herkes için ikili dosyaları engellemeden hata ayıklama bilgilerini yüklemelerine olanak sağlamak için kullanılır. Bir program veya kitaplık oluşturulduğunda ve bağlandığında, hata ayıklayıcıların ikili koddaki konumları kaynak kodundaki konumlarla eşlemek için kullanabileceği hata ayıklama bilgileriyle oluşturulabilir; ama bu bilgiler çok yer kaplıyor. Bu nedenle, hata ayıklama bilgileri genellikle paketlenmeden önce ikili dosyalardan çıkarılır. Son yıllarda strip
ve objcopy
hata ayıklama bilgilerinin ayrı ayrı çıkarılabilmesi ve saklanabilmesi için geliştirilmiştir - hata ayıklama bilgi paketleri bu şekilde oluşturulur. O zaman tek gereken, bir ikili ve hata ayıklama bilgilerinin karşılık gelmesini sağlamanın bir yoludur ve bu noktada yapı kimlikleri devreye girer - bunlar tarafından hesaplanan benzersiz tanımlayıcılardırld
(için göz --build-id
, bir ikili önemli kısımlarının orada). “Ana derleme kimliği dosyaları” derleme kimliğinden ilgili ikili veya hata ayıklama bilgi dosyasına olan sembolik bağlantılardır; iki yönlü eşlemelerin uygulanmasına izin verir, böylece çekirdek dökümleri yararlı bir şekilde hata ayıklanabilir (ikili .gnu_debuglink
kısımdan ikili dosyadaki yapı kimliklerine bir bağlantı vardır ). Tüm bunların ardındaki mantığın ayrıntılı bir açıklamasını Fedora yapı kimliği özellik açıklamasında bulacaksınız .
rpm --query --file /usr/lib/.build-id
"sahip" bir sürü paket listeler/usr/lib/.build-id
... garip.