/usr/lib/.build-id
स्थापित पैकेज के लिए मुख्य बिल्ड-आईडी फ़ाइलें हैं। फेडोरा 27 से पहले, ये डिबग फ़ाइलों के साथ रहते थे /usr/lib/debug
और केवल डीबग RPM में भेज दिए जाते थे। फेडोरा 27 में, कई डिबग सूचना पैकेजों के समानांतर स्थापना की अनुमति देने के लिए एक बदलाव पेश किया गया था । उस परिवर्तन के एक हिस्से में मुख्य बिल्ड-आईडी फ़ाइलों को वे पैकेज में मिलाते हैं, जो यह सुनिश्चित करते हैं कि वे स्थापित बायनेरिज़ से मेल खाते हैं।
डिबग सूचना संकुल का उपयोग कई वितरणों में किया जाता है ताकि उपयोगकर्ताओं के लिए डिबगिंग जानकारी स्थापित करने के लिए एक रास्ता प्रदान किया जा सके, जब सभी के लिए बायनेरी को फूलाए बिना। जब कोई प्रोग्राम या लाइब्रेरी बनाई और लिंक की जाती है, तो इसे डीबगिंग जानकारी के साथ बनाया जा सकता है, जो डीबगर तब बाइनरी स्थानों में मैप मैप का उपयोग अपने स्रोत कोड में स्थानों के साथ कर सकते हैं; लेकिन यह जानकारी काफी जगह लेती है। इसलिए डिबगिंग की जानकारी आम तौर पर बायनेरिज़ से छीन ली जाती है, इससे पहले कि वे पैक किए जाएं। हाल के वर्षों में, strip
और objcopy
बढ़ाया गया है ताकि डिबगिंग जानकारी को अलग से निकाला और संग्रहीत किया जा सके - यही कारण है कि डिबग जानकारी पैकेज बनाए गए हैं। सभी की जरूरत है तो यह सुनिश्चित करने का कुछ तरीका है कि एक बाइनरी और उसके डिबग जानकारी के अनुरूप हो, और वह है जहां बिल्ड आईडी आते हैं - वे अद्वितीय पहचानकर्ता हैं जिनके द्वारा गणना की जाती हैld
( --build-id
वहाँ के लिए देखो ) एक बाइनरी के महत्वपूर्ण भागों पर। "मुख्य बिल्ड-आईडी फाइलें" एक बिल्ड आईडी से संबंधित बाइनरी या डीबग जानकारी फ़ाइल के लिए सिम्लिंक हैं; वे दो-तरफा मैपिंग को लागू करने की अनुमति देते हैं, ताकि कोर डंप को उपयोगी रूप से डिबग किया जा सके (इसमें बायनेरिज़ से उनके बिल्ड आईडी में स्वयं .gnu_debuglink
सेक्शन में बायनेरिज़ का लिंक होता है )। आपको फेडोरा बिल्ड-आईडी फीचर विवरण में इस सब के पीछे तर्क का एक विस्तृत विवरण मिलेगा ।
rpm --query --file /usr/lib/.build-id
संकुल के एक टन "मालिक"/usr/lib/.build-id
... अजीब।