अंग्रेज़ीफ्रेंचस्पेनिश

ऑनवर्क्स फ़ेविकॉन

dpkg-gensymbols - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में dpkg-gensymbols चलाएं

यह कमांड dpkg-gensymbols है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


dpkg-gensymbols - प्रतीक फ़ाइलें उत्पन्न करें (साझा लाइब्रेरी निर्भरता जानकारी)

SYNOPSIS


dpkg-gensymbols [विकल्प...]

वर्णन


dpkg-gensymbols पुस्तकालयों की तलाश में एक अस्थायी बिल्ड ट्री (डिफ़ॉल्ट रूप से डेबियन/टीएमपी) को स्कैन करता है
और एक उत्पन्न करता है प्रतीकों उनका वर्णन करने वाली फ़ाइल। यह फ़ाइल, यदि खाली नहीं है, तब स्थापित की जाती है
बिल्ड ट्री की DEBIAN उपनिर्देशिका में ताकि यह अंततः नियंत्रण में शामिल हो जाए
पैकेज की जानकारी.

उन फ़ाइलों को बनाते समय, यह इनपुट के रूप में प्रदान की गई कुछ प्रतीक फ़ाइलों का उपयोग करता है
अनुरक्षक. यह निम्नलिखित फ़ाइलों की तलाश करता है (और जो पहली मिली है उसका उपयोग करता है):

· डेबियन/पैकेज.प्रतीक.मेहराब

· डेबियन/प्रतीक.मेहराब

· डेबियन/पैकेज.प्रतीक

· डेबियन/प्रतीक

उन फ़ाइलों का मुख्य हित प्रत्येक से संबद्ध न्यूनतम संस्करण प्रदान करना है
पुस्तकालयों द्वारा प्रदान किया गया प्रतीक। आमतौर पर यह उसके पहले संस्करण से मेल खाता है
पैकेज जो प्रतीक प्रदान करता है, लेकिन इसे अनुरक्षक द्वारा मैन्युअल रूप से बढ़ाया जा सकता है
प्रतीक का एबीआई पश्चगामी अनुकूलता को तोड़े बिना बढ़ाया जाता है। यह है
उन फ़ाइलों को अद्यतन और सटीक रखने की ज़िम्मेदारी अनुरक्षक की है, लेकिन
dpkg-gensymbols उसमें मदद करता है.

जब उत्पन्न प्रतीक फ़ाइलें आपूर्ति किए गए अनुरक्षक से भिन्न होती हैं, dpkg-gensymbols
दोनों संस्करणों के बीच अंतर प्रिंट करेगा। इसके अलावा अगर अंतर भी है
महत्वपूर्ण, यह विफल भी हो जाएगा (आप अनुकूलित कर सकते हैं कि आप कितना अंतर सहन कर सकते हैं,
देख -c विकल्प)।

को बनाए रखने प्रतीक फ़ाइलें


प्रतीक फ़ाइलें वास्तव में केवल तभी उपयोगी होती हैं जब वे पैकेज के विकास को दर्शाती हैं
कई रिलीज़ों के माध्यम से। इस प्रकार अनुरक्षक को हर बार उन्हें नया अपडेट करना पड़ता है
प्रतीक जोड़ा गया है ताकि इसका संबद्ध न्यूनतम संस्करण वास्तविकता से मेल खाए। अंतर
बिल्ड लॉग में निहित को शुरुआती बिंदु के रूप में उपयोग किया जा सकता है, लेकिन अनुरक्षक,
इसके अतिरिक्त, यह सुनिश्चित करना होगा कि उन प्रतीकों का व्यवहार नहीं बदला है
जिस तरह से उन प्रतीकों का उपयोग करके और नए संस्करण के विरुद्ध लिंक करके कुछ भी किया जाएगा, उसे रोकें
पुराने संस्करण के साथ काम करना। ज्यादातर मामलों में, अंतर सीधे लागू होता है
डेबियन/पैकेज.प्रतीक फ़ाइल. जैसा कि कहा गया है, आम तौर पर और बदलाव की आवश्यकता होती है: यह है
उदाहरण के लिए डेबियन संशोधन को न्यूनतम संस्करण से हटाने की अनुशंसा की गई ताकि
निम्न संस्करण संख्या के साथ बैकपोर्ट लेकिन वही अपस्ट्रीम संस्करण अभी भी संतुष्ट करता है
उत्पन्न निर्भरताएँ. यदि डेबियन संशोधन को हटाया नहीं जा सकता क्योंकि वास्तव में प्रतीक
डेबियन विशिष्ट परिवर्तन द्वारा जोड़ा गया है, तो किसी को संस्करण के साथ 'प्रत्यय' लगाना चाहिए~'.

सिंबल फ़ाइल में कोई भी पैच लगाने से पहले, अनुरक्षक को उसकी दोबारा जांच करनी चाहिए
यह समझदार है. सार्वजनिक प्रतीकों को गायब नहीं किया जाना चाहिए, इसलिए पैच आदर्श रूप से ही होना चाहिए
नई पंक्तियाँ जोड़ें.

ध्यान दें कि आप प्रतीक फ़ाइलों में टिप्पणियाँ डाल सकते हैं: पहले अक्षर के रूप में '#' वाली किसी भी पंक्ति में
यह एक टिप्पणी है, सिवाय इसके कि यह '#include' से शुरू होती है (अनुभाग देखें)। का प्रयोग शामिल). पंक्तियां
'#MISSING:' से शुरू होने वाली विशेष टिप्पणियाँ उन प्रतीकों का दस्तावेजीकरण करती हैं जो गायब हो गए हैं।

यह जांचना न भूलें कि पुराने प्रतीक संस्करणों को बढ़ाने की आवश्यकता है या नहीं। कोई उपाय नहीं है
dpkg-gensymbols इस बारे में चेतावनी दे सकते हैं. अंतर को आंख मूंदकर लागू करना या मान लेना कि अंतर है
यदि कोई अंतर नहीं है, तो ऐसे बदलावों की जांच किए बिना, कुछ भी नहीं बदला जा सकता है
ढीली निर्भरता वाले पैकेज जो दावा करते हैं कि वे पुराने पैकेजों के साथ काम कर सकते हैं जो वे नहीं कर सकते
के साथ काम। इससे (आंशिक) अपग्रेड के साथ बग ढूंढना मुश्किल हो जाएगा।

का प्रयोग #पैकेट# प्रतिस्थापन
कुछ दुर्लभ मामलों में, लाइब्रेरी का नाम आर्किटेक्चर के अनुसार भिन्न होता है। कन्नी काटना
सिंबल फ़ाइल में पैकेज के नाम को हार्डकोड करने के लिए, आप मार्कर का उपयोग कर सकते हैं #पैकेट#.
सिंबल फ़ाइलों की स्थापना के दौरान इसे वास्तविक पैकेज नाम से बदल दिया जाएगा।
के विपरीत #मिनवर# मार्कर, #पैकेट# के अंदर प्रतीक फ़ाइल में कभी दिखाई नहीं देगा
बाइनरी पैकेज।

का प्रयोग प्रतीक टैग
प्रतीक टैगिंग उन प्रतीकों को चिह्नित करने के लिए उपयोगी है जो किसी तरह से विशेष हैं। कोई भी प्रतीक कर सकता है
इसके साथ टैग की मनमानी संख्या जुड़ी हुई है। जबकि सभी टैग पार्स और संग्रहीत हैं,
उनमें से केवल कुछ ही समझ में आते हैं dpkg-gensymbols और विशेष हैंडलिंग को ट्रिगर करें
प्रतीक. उपधारा देखें स्टैण्डर्ड प्रतीक टैग इन टैग के संदर्भ के लिए.

टैग विनिर्देश प्रतीक नाम के ठीक पहले आता है (किसी रिक्त स्थान की अनुमति नहीं है
बीच में)। यह हमेशा एक ओपनिंग ब्रैकेट से शुरू होता है (, एक समापन ब्रैकेट के साथ समाप्त होता है ) और
कम से कम एक टैग अवश्य होना चाहिए. एकाधिक टैग द्वारा अलग किए गए हैं | चरित्र। प्रत्येक टैग
वैकल्पिक रूप से एक मान हो सकता है जिसे टैग नाम से अलग किया जाता है = चरित्र। टैग
नाम और मान मनमाने ढंग से स्ट्रिंग हो सकते हैं सिवाय इसके कि उनमें कोई विशेष शामिल नहीं हो सकता )
| = पात्र। टैग विनिर्देश का अनुसरण करने वाले प्रतीक नामों को वैकल्पिक रूप से उद्धृत किया जा सकता है
भी ' or " वर्णों में रिक्त स्थान की अनुमति देने के लिए। हालाँकि, यदि कोई टैग नहीं हैं
प्रतीक के लिए निर्दिष्ट, उद्धरण चिन्ह को प्रतीक नाम के भाग के रूप में माना जाता है जो जारी रहता है
पहली जगह तक.

(टैग1=मैं चिह्नित हूं|स्पेस के साथ टैग नाम)"उद्धृत प्रतीक टैग किया गया"@बेस 1.0
(वैकल्पिक)tagged_unquoted_symbol@बेस 1.0 1
untagged_symbol@बेस 1.0

उदाहरण में पहले प्रतीक का नाम है चिह्नित उद्धृत प्रतीक और इसके दो टैग हैं: tag1 साथ में
मूल्य i am चिह्नित और टैग नाम साथ में अंतरिक्ष जिसका कोई मूल्य नहीं है. दूसरा प्रतीक नामित
टैग_अनउद्धृत_प्रतीक केवल नामित टैग के साथ टैग किया गया है वैकल्पिक. अंतिम प्रतीक एक है
सामान्य अचिह्नित प्रतीक का उदाहरण.

चूँकि प्रतीक टैग इसका विस्तार हैं देब-प्रतीक(5) प्रारूप, वे केवल इसका हिस्सा हो सकते हैं
स्रोत पैकेजों में उपयोग की जाने वाली प्रतीक फ़ाइलें (उन फ़ाइलों को टेम्पलेट के रूप में देखा जाना चाहिए
बाइनरी पैकेज में एम्बेडेड प्रतीक फ़ाइलें बनाने के लिए उपयोग किया जाता है)। कब
dpkg-gensymbols के बिना कहा जाता है -t विकल्प, यह संगत प्रतीक फ़ाइलों को आउटपुट करेगा
को देब-प्रतीक(5) प्रारूप: यह आवश्यकताओं के अनुसार प्रतीकों को पूरी तरह से संसाधित करता है
उनके मानक टैग और आउटपुट से सभी टैग हटा देते हैं। इसके विपरीत, टेम्प्लेट मोड में
(-t) सभी प्रतीक और उनके टैग (मानक और अज्ञात दोनों) आउटपुट में रखे जाते हैं
और जैसे ही उन्हें लोड किया गया था, वे अपने मूल रूप में लिखे गए हैं।

स्टैण्डर्ड प्रतीक टैग
वैकल्पिक
वैकल्पिक के रूप में चिह्नित प्रतीक किसी भी समय लाइब्रेरी से गायब हो सकता है
कभी कारण नहीं होगा dpkg-gensymbols असफल होना। हालाँकि, वैकल्पिक प्रतीक गायब हो गए
प्रत्येक नए पैकेज संशोधन में अंतर में लगातार मिसिंग के रूप में दिखाई देगा। यह
व्यवहार अनुरक्षक के लिए एक अनुस्मारक के रूप में कार्य करता है कि ऐसे प्रतीक की आवश्यकता है
प्रतीक फ़ाइल से हटा दिया गया या लाइब्रेरी में पढ़ा गया। जब वैकल्पिक प्रतीक,
जिसे पहले लापता घोषित किया गया था, वह अचानक अगले संशोधन में फिर से प्रकट हो जाता है,
इसे इसके न्यूनतम संस्करण के साथ वापस "मौजूदा" स्थिति में अपग्रेड कर दिया जाएगा
अपरिवर्तित।

यह टैग उन प्रतीकों के लिए उपयोगी है जो निजी हैं जहां उनका गायब होना नहीं है
एबीआई टूटने का कारण। उदाहरण के लिए, अधिकांश C++ टेम्प्लेट इंस्टेंटेशन इसी में आते हैं
वर्ग। किसी भी अन्य टैग की तरह, इसका भी एक मनमाना मूल्य हो सकता है: यह हो सकता है
यह इंगित करने के लिए उपयोग किया जाना चाहिए कि प्रतीक को वैकल्पिक क्यों माना जाता है।

मेहराब=वास्तुकला-सूची
आर्च-बिट्स=आर्किटेक्चर-बिट्स
आर्च-एंडियन=वास्तुकला-एंडियननेस
ये टैग किसी को आर्किटेक्चर के उस सेट को प्रतिबंधित करने की अनुमति देते हैं जहां प्रतीक है
अस्तित्व में होना चाहिए। आर्च-बिट्स और आर्क-एंडियन टैग dpkg के बाद से समर्थित हैं
1.18.0. जब प्रतीकों की सूची को खोजे गए प्रतीकों के साथ अद्यतन किया जाता है
लाइब्रेरी, सभी आर्क-विशिष्ट प्रतीक जो वर्तमान होस्ट से संबंधित नहीं हैं
वास्तुकला के साथ ऐसा व्यवहार किया जाता है मानो उनका अस्तित्व ही नहीं था। यदि एक आर्क-विशिष्ट प्रतीक
वर्तमान होस्ट आर्किटेक्चर से मेल खाना लाइब्रेरी में मौजूद नहीं है, सामान्य है
लुप्त प्रतीकों के लिए प्रक्रियाएँ लागू होती हैं और इसका कारण हो सकता है dpkg-gensymbols असफल होना। पर
दूसरी ओर, यदि आर्च-विशिष्ट प्रतीक तब पाया जाता है जब उसे नहीं मिलना चाहिए था
मौजूद है (क्योंकि वर्तमान होस्ट आर्किटेक्चर टैग में सूचीबद्ध नहीं है या नहीं है
एंडियननेस और बिट्स से मेल करें), इसे आर्क न्यूट्रल (यानी आर्क, आर्क-बिट्स) बनाया गया है
और आर्क-एंडियन टैग हटा दिए गए हैं और इसके कारण प्रतीक अंतर में दिखाई देगा
परिवर्तन), लेकिन इसे नया नहीं माना जाता है।

डिफ़ॉल्ट गैर-टेम्पलेट मोड में काम करते समय, केवल आर्क-विशिष्ट प्रतीकों के बीच
जो वर्तमान होस्ट आर्किटेक्चर से मेल खाते हैं उन्हें प्रतीक फ़ाइल में लिखा जाता है। पर
इसके विपरीत, सभी मेहराब-विशिष्ट प्रतीक (विदेशी मेहराबों सहित) हैं
टेम्प्लेट मोड में संचालन करते समय हमेशा प्रतीक फ़ाइल में लिखा जाता है।

का प्रारूप वास्तुकला-सूची में प्रयुक्त के समान ही है निर्माण-निर्भर
का क्षेत्र डेबियन / नियंत्रण (वर्गाकार कोष्ठकों को छोड़कर [])। उदाहरण के लिए,
नीचे दी गई सूची में से पहला प्रतीक केवल अल्फा, Any-AMD64 और पर ही विचार किया जाएगा
ia64 आर्किटेक्चर, लिनक्स आर्किटेक्चर पर दूसरा, जबकि तीसरा
आर्मेल को छोड़कर कहीं भी।

(आर्क=अल्फा कोई भी-amd64 ia64)a_64bit_special_symbol@Base 1.0
(आर्क=linux-कोई भी)linux_special_symbol@Base 1.0
(arch=!armel)symbol_armel_does_not_have@Base 1.0

RSI आर्किटेक्चर-बिट्स या तो 32 or 64.

(आर्क-बिट्स=32)a_32बिट_स्पेसिफिक_सिम्बोल@बेस 1.0
(आर्क-बिट्स=64)a_64बिट_स्पेसिफिक_सिम्बोल@बेस 1.0

RSI वास्तुकला-एंडियननेस या तो थोड़ा or बड़ा.

(आर्क-एंडियन=छोटा)a_little_endian_special_symbol@बेस 1.0
(आर्क-एंडियन=बड़ा)a_big_endian_special_symbol@बेस 1.0

अनेक प्रतिबंधों की जंजीर बनाई जा सकती है।

(आर्क-बिट्स=32|आर्क-एंडियन=छोटा)a_32बिट_le_symbol@बेस 1.0

अनदेखा-काली सूची
dpkg-gensymbols में प्रतीकों की एक आंतरिक ब्लैकलिस्ट है जो दिखाई नहीं देनी चाहिए
प्रतीक फ़ाइलें क्योंकि वे आम तौर पर कार्यान्वयन विवरण के केवल दुष्प्रभाव होते हैं
टूलचेन. यदि किसी कारण से, आप वास्तव में उन प्रतीकों में से एक बनना चाहते हैं
प्रतीक फ़ाइल में शामिल, आपको प्रतीक को इसके साथ टैग करना चाहिए अनदेखा-काली सूची. यह
libgcc जैसी कुछ निम्न स्तरीय टूलचेन लाइब्रेरीज़ के लिए आवश्यक हो सकता है।

सी ++ अर्थ है सी ++ प्रतीक पैटर्न. देखना का प्रयोग प्रतीक पैटर्न उपयोग करें नीचे उपधारा.

सिम्वर अर्थ है सिम्वर (प्रतीक संस्करण) प्रतीक पैटर्न। देखना का प्रयोग प्रतीक पैटर्न उपयोग करें
नीचे उपधारा.

regex अर्थ है regex प्रतीक पैटर्न. देखना का प्रयोग प्रतीक पैटर्न उपयोग करें नीचे उपधारा.

का प्रयोग प्रतीक पैटर्न उपयोग करें
एक मानक प्रतीक विनिर्देश के विपरीत, एक पैटर्न कई वास्तविक प्रतीकों को कवर कर सकता है
पुस्तकालय। dpkg-gensymbols प्रत्येक पैटर्न को प्रत्येक वास्तविक प्रतीक से मिलाने का प्रयास करेगा
कर देता है नहीं प्रतीक फ़ाइल में एक विशिष्ट प्रतीक समकक्ष परिभाषित है। जब भी पहली बार
मिलान पैटर्न पाया जाता है, इसके सभी टैग और गुणों को आधार के रूप में उपयोग किया जाएगा
प्रतीक की विशिष्टता. यदि कोई भी पैटर्न मेल नहीं खाता है, तो प्रतीक होगा
नया माना जाता है.

यदि कोई पैटर्न लाइब्रेरी में किसी प्रतीक से मेल नहीं खाता है तो उसे खोया हुआ माना जाता है। डिफ़ॉल्ट रूप से
यह एक ट्रिगर करेगा dpkg-gensymbols के तहत विफलता -सी 1 या उच्च स्तर. हालाँकि, यदि
विफलता अवांछित है, पैटर्न को इसके साथ चिह्नित किया जा सकता है वैकल्पिक टैग। फिर यदि पैटर्न
किसी भी चीज़ से मेल नहीं खाता है, यह केवल अंतर में मिसिंग के रूप में दिखाई देगा। इसके अलावा, किसी की तरह
प्रतीक, पैटर्न विशिष्ट आर्किटेक्चर तक सीमित हो सकता है मेहराब टैग। कृपया
का उल्लेख करने स्टैण्डर्ड प्रतीक टैग अधिक जानकारी के लिए उपरोक्त उपधारा।

पैटर्न इसी का विस्तार हैं देब-प्रतीक(5) प्रारूप इसलिए वे केवल प्रतीक में ही मान्य हैं
फ़ाइल टेम्पलेट. पैटर्न विनिर्देश सिंटैक्स इनमें से किसी भी प्रकार से भिन्न नहीं है
विशिष्ट प्रतीक. हालाँकि, विनिर्देश का प्रतीक नाम भाग एक अभिव्यक्ति के रूप में कार्य करता है
के साथ मिलान किया जाए नाम@संस्करण असली प्रतीक का. के बीच अंतर करने के लिए
विभिन्न पैटर्न प्रकार, एक पैटर्न को आम तौर पर एक विशेष टैग के साथ टैग किया जाएगा।

इस छण ​​में, dpkg-gensymbols तीन बुनियादी पैटर्न प्रकारों का समर्थन करता है:

सी ++
इस पैटर्न को द्वारा निरूपित किया जाता है सी ++ टैग। यह केवल C++ प्रतीकों को उनके विघटित करके मेल खाता है
प्रतीक का नाम (जैसा कि उत्सर्जित होता है सी ++छानना(1) उपयोगिता). यह पैटर्न मिलान के लिए बहुत उपयोगी है
नामों को उलझाने वाले प्रतीक अलग-अलग आर्किटेक्चर में अलग-अलग हो सकते हैं
विघटित नाम वही रहते हैं। ऐसे प्रतीकों का एक समूह है गैर आभासी थैंक्स कौन कौन से
उनके उलझे हुए नामों में वास्तुकला विशिष्ट ऑफसेट अंतर्निहित हैं। एक सामान्य उदाहरण
इस मामले में एक आभासी विध्वंसक है जिसे हीरे की विरासत के तहत एक गैर-की आवश्यकता होती है
आभासी थंक प्रतीक. उदाहरण के लिए, भले ही _ZThn8_N3NSB6ClassDD1Ev@Base 32 बिट पर हो
आर्किटेक्चर संभवतः 16 बिट वाले पर _ZThn3_N6NSB1ClassDD64Ev@Base होंगे, यह हो सकता है
एकल के साथ मिलान किया गया सी ++ पैटर्न:

libdummy.so.1 libdummy1 #MINVER#
[...]
(सी++)"एनएसबी के लिए गैर-वर्चुअल थंक::क्लासडी::~क्लासडी()@बेस" 1.0
[...]

उपरोक्त विघटित नाम निम्नलिखित आदेश निष्पादित करके प्राप्त किया जा सकता है:

$ इको '_ZThn8_N3NSB6ClassDD1Ev@Base' | सी++फिल्ट

कृपया ध्यान दें कि परिभाषा के अनुसार, उलझा हुआ नाम लाइब्रेरी में अद्वितीय है, लेकिन ऐसा नहीं है
विघटित नामों के लिए आवश्यक रूप से सत्य है। कुछ अलग वास्तविक प्रतीक हो सकते हैं
वही विकृत नाम. उदाहरण के लिए, गैर-आभासी थंक प्रतीकों के मामले में यही स्थिति है
जटिल इनहेरिटेंस कॉन्फ़िगरेशन या अधिकांश कंस्ट्रक्टर और डिस्ट्रक्टर के साथ (g++ के बाद से)।
आम तौर पर उनके लिए दो वास्तविक प्रतीक उत्पन्न होते हैं)। हालाँकि, जैसे-जैसे ये टकराव होते रहते हैं
एबीआई स्तर पर, उन्हें प्रतीक फ़ाइल की गुणवत्ता ख़राब नहीं करनी चाहिए।

सिम्वर
इस पैटर्न को द्वारा निरूपित किया जाता है सिम्वर टैग। सुव्यवस्थित पुस्तकालयों का संस्करण तैयार किया गया है
प्रतीक जहां प्रत्येक संस्करण अपस्ट्रीम संस्करण से मेल खाता है जहां प्रतीक मिला
जोड़ा गया. यदि ऐसा है, तो आप इसका उपयोग कर सकते हैं सिम्वर किसी भी संबद्ध प्रतीक से मेल खाने वाला पैटर्न
विशिष्ट संस्करण के लिए. उदाहरण के लिए:

libc.so.6 libc6 #MINVER#
(सिम्वर)GLIBC_2.0 2.0
[...]
(सिम्वर)GLIBC_2.7 2.7
access@GLIBC_2.0 2.2

GLIBC_2.0 और GLIBC_2.7 संस्करणों से जुड़े सभी प्रतीक न्यूनतम की ओर ले जाएंगे
प्रतीक के अपवाद के साथ क्रमशः 2.0 और 2.7 का संस्करण access@GLIBC_2.0.
उत्तरार्द्ध में होने के बावजूद libc6 संस्करण 2.2 पर न्यूनतम निर्भरता होगी
"(symver)GLIBC_2.0" पैटर्न का दायरा क्योंकि विशिष्ट प्रतीकों को प्राथमिकता दी जाती है
पैटर्न।

कृपया ध्यान दें कि पुरानी शैली के वाइल्डकार्ड पैटर्न (में "*@version" द्वारा चिह्नित)।
प्रतीक नाम फ़ील्ड) अभी भी समर्थित हैं, उन्हें नई शैली सिंटैक्स द्वारा बहिष्कृत कर दिया गया है
"(सहानुभूति|वैकल्पिक)संस्करण"। उदाहरण के लिए, "*@GLIBC_2.0 2.0" को इस प्रकार लिखा जाना चाहिए
यदि समान व्यवहार की आवश्यकता है तो "(सिम्वर|वैकल्पिक)GLIBC_2.0 2.0"।

regex
नियमित अभिव्यक्ति पैटर्न द्वारा निरूपित किया जाता है regex टैग। वे पर्ल द्वारा मेल खाते हैं
प्रतीक नाम फ़ील्ड में निर्दिष्ट नियमित अभिव्यक्ति। एक रेगुलर एक्सप्रेशन का मिलान किया जाता है
जैसा कि यह है, इसलिए इसे से शुरू करना न भूलें ^ चरित्र या यह किसी से मेल खा सकता है
वास्तविक प्रतीक का भाग नाम@संस्करण डोरी। उदाहरण के लिए:

libdummy.so.1 libdummy1 #MINVER#
(regex)"^mystack_.*@Base$" 1.0
(रेगेक्स|वैकल्पिक)"निजी" 1.0

"mystack_new@Base", "mystack_push@Base", "mystack_pop@Base" आदि जैसे प्रतीक होंगे
पहले पैटर्न से मेल खाता है जबकि उदाहरण के लिए "ng_mystack_new@Base" नहीं होगा। दूसरा
पैटर्न उन सभी प्रतीकों से मेल खाएगा जिनके नाम और मिलान में स्ट्रिंग "निजी" है
विरासत में मिलेगा वैकल्पिक पैटर्न से टैग करें.

ऊपर सूचीबद्ध बुनियादी पैटर्न को वहां जोड़ा जा सकता है जहां यह समझ में आता है। उस स्थिति में, वे हैं
उस क्रम में संसाधित किया गया जिसमें टैग निर्दिष्ट हैं। उदाहरण के लिए, दोनों

(c++|regex)"^NSA::ClassA::Private::privmethod\d\(int\)@Base" 1.0
(regex|c++)N3NSA6ClassA7Private11privmethod\dEi@Base 1.0

प्रतीकों "_ZN3NSA6ClassA7Private11privmethod1Ei@Base" से मेल खाएगा और
"_ZN3NSA6ClassA7Private11privmethod2Ei@Base"। पहले पैटर्न से मिलान करते समय, कच्चा
प्रतीक को पहले C++ प्रतीक के रूप में विघटित किया जाता है, फिर विघटित नाम का मिलान किया जाता है
नियमित अभिव्यक्ति। दूसरी ओर, दूसरे पैटर्न से मिलान करते समय, नियमित
अभिव्यक्ति का मिलान कच्चे प्रतीक नाम से किया जाता है, फिर प्रतीक का परीक्षण किया जाता है कि क्या यह C++ है
एक इसे खंडित करने का प्रयास करके। किसी भी बुनियादी पैटर्न की विफलता का परिणाम होगा
पूरे पैटर्न की विफलता. इसलिए, उदाहरण के लिए,
"__N3NSA6ClassA7Private11privmethod\dEi@Base" किसी भी पैटर्न से मेल नहीं खाएगा
क्योंकि यह मान्य C++ प्रतीक नहीं है.

सामान्य तौर पर, सभी पैटर्न को दो समूहों में विभाजित किया जाता है: उपनाम (मूल सी ++ और सिम्वर) और
सामान्य पैटर्न (regex, कई बुनियादी पैटर्न के सभी संयोजन)। बेसिक का मिलान
उपनाम-आधारित पैटर्न तेज़ है (O(1)) जबकि जेनेरिक पैटर्न ओ(एन) हैं (एन - जेनेरिक पैटर्न
गिनती) प्रत्येक प्रतीक के लिए। इसलिए, यह अनुशंसा की जाती है कि सामान्य पैटर्न का अति प्रयोग न करें।

जब कई पैटर्न एक ही वास्तविक प्रतीक से मेल खाते हैं, तो उपनाम (प्रथम सी ++, तो सिम्वर) रहे
सामान्य पैटर्न की तुलना में प्राथमिकता दी गई। सामान्य पैटर्न का मिलान उसी क्रम में किया जाता है जिस क्रम में वे पाए जाते हैं
पहली सफलता तक प्रतीक फ़ाइल टेम्पलेट में। हालाँकि, कृपया उस मैनुअल पर ध्यान दें
टेम्प्लेट फ़ाइल प्रविष्टियों को पुन: व्यवस्थित करने की अनुशंसा नहीं की जाती है क्योंकि dpkg-gensymbols उत्पन्न करता है
उनके नामों के अक्षरांकीय क्रम के आधार पर अंतर होता है।

का प्रयोग शामिल
जब निर्यात किए गए प्रतीकों का सेट आर्किटेक्चर के बीच भिन्न होता है, तो यह अक्षम हो सकता है
एकल प्रतीक फ़ाइल का उपयोग करने के लिए. उन मामलों में, शामिल निर्देश उपयोगी साबित हो सकता है
कुछ तरीकों से:

· आप किसी बाहरी फ़ाइल में सामान्य भाग को फ़ैक्टराइज़ कर सकते हैं और उस फ़ाइल को अपनी फ़ाइल में शामिल कर सकते हैं
पैकेज.प्रतीक.मेहराब इस तरह शामिल निर्देश का उपयोग करके फ़ाइल करें:

#शामिल "संकुल.प्रतीक.सामान्य"

· शामिल निर्देश को भी किसी प्रतीक की तरह टैग किया जा सकता है:

(टैग|...|टैगएन)#शामिल "फ़ाइल-टू-शामिल"

परिणामस्वरूप, सभी प्रतीकों को शामिल किया गया फ़ाइल-में-शामिल करें टैग किया हुआ माना जाएगा
साथ में टैग ... टैगएन डिफ़ॉल्ट रूप से। आप इस सुविधा का उपयोग सामान्य बनाने के लिए कर सकते हैं
पैकेज.symbols फ़ाइल जिसमें आर्किटेक्चर विशिष्ट प्रतीक फ़ाइलें शामिल हैं:

सामान्य_प्रतीक1@बेस 1.0
(आर्क=amd64 ia64 अल्फा)#include "package.symbols.64bit"
(आर्क=!amd64 !ia64 !alpha)#include "package.symbols.32bit"
सामान्य_प्रतीक2@बेस 1.0

प्रतीक फ़ाइलें पंक्ति-दर-पंक्ति पढ़ी जाती हैं, और शामिल निर्देशों को जल्द से जल्द संसाधित किया जाता है
उनका सामना किया जाता है. इसका मतलब यह है कि शामिल फ़ाइल की सामग्री किसी को भी ओवरराइड कर सकती है
वह सामग्री जो शामिल निर्देश से पहले दिखाई देती है और वह सामग्री इसके बाद दिखाई देती है
निर्देश सम्मिलित फ़ाइल में निहित किसी भी चीज़ को ओवरराइड कर सकता है। कोई भी प्रतीक (या यहां तक ​​कि
शामिल फ़ाइल में एक और #include निर्देश) अतिरिक्त टैग निर्दिष्ट कर सकता है या ओवरराइड कर सकता है
इसके टैग विनिर्देश में विरासत में मिले टैग के मान। हालाँकि, इसके लिए कोई रास्ता नहीं है
किसी भी इनहेरिट किए गए टैग को हटाने के लिए प्रतीक।

शामिल फ़ाइल लाइब्रेरी के SONAME वाली हेडर लाइन को दोहरा सकती है। के कारण से
मामले में, यह पहले पढ़ी गई किसी भी हेडर लाइन को ओवरराइड करता है। हालाँकि, सामान्य तौर पर यह सबसे अच्छा है
हेडर पंक्तियों की नकल करने से बचें. इसे करने का एक तरीका निम्नलिखित है:

#शामिल है "libsomething1.symbols.common"
आर्क_विशिष्ट_प्रतीक@बेस 1.0

अच्छा पुस्तकालय प्रबंध
एक सुव्यवस्थित पुस्तकालय में निम्नलिखित विशेषताएं होती हैं:

· इसका एपीआई स्थिर है (सार्वजनिक प्रतीकों को कभी नहीं हटाया जाता है, केवल नए सार्वजनिक प्रतीकों को हटा दिया जाता है
जोड़ा गया) और असंगत तरीकों से परिवर्तन तभी होता है जब SONAME बदलता है;

· आदर्श रूप से, यह आंतरिक परिवर्तनों के बावजूद एबीआई स्थिरता प्राप्त करने के लिए प्रतीक संस्करण का उपयोग करता है
और एपीआई एक्सटेंशन;

· यह निजी प्रतीकों को निर्यात नहीं करता है (ऐसे प्रतीकों को वैकल्पिक समाधान के रूप में टैग किया जा सकता है)।

प्रतीक फ़ाइल को बनाए रखते समय, इसकी उपस्थिति और गायब होने पर ध्यान देना आसान है
प्रतीक. लेकिन असंगत एपीआई और एबीआई परिवर्तन को पकड़ना अधिक कठिन है। इस प्रकार
अनुरक्षक को उन मामलों की तलाश में अपस्ट्रीम चेंजलॉग को अच्छी तरह से पढ़ना चाहिए जहां नियम हैं
अच्छे पुस्तकालय प्रबंधन को तोड़ दिया गया है। यदि संभावित समस्याओं का पता चलता है, तो
अपस्ट्रीम लेखक को सूचित किया जाना चाहिए क्योंकि अपस्ट्रीम फिक्स हमेशा डेबियन से बेहतर होता है
विशिष्ट कामकाज.

विकल्प


-Pपैकेज-बिल्ड-डीआईआर
स्कैन पैकेज-बिल्ड-डीआईआर डेबियन/टीएमपी के बजाय।

-pपैकेज
पैकेज का नाम परिभाषित करें. यदि एक से अधिक बाइनरी पैकेज सूचीबद्ध हैं तो आवश्यक है
डेबियन/नियंत्रण (या यदि कोई डेबियन/नियंत्रण फ़ाइल नहीं है)।

-vसंस्करण
पैकेज संस्करण को परिभाषित करें. से निकाले गए संस्करण के लिए डिफ़ॉल्ट
डेबियन/चेंजलॉग। यदि स्रोत पैकेज ट्री के बाहर कॉल किया जाता है तो आवश्यक है।

-eपुस्तकालय-फ़ाइल
सभी सार्वजनिक पुस्तकालयों को खोजने के बजाय केवल स्पष्ट रूप से सूचीबद्ध पुस्तकालयों का विश्लेषण करें।
आप पथनाम विस्तार के लिए उपयोग किए जाने वाले शेल पैटर्न का उपयोग कर सकते हैं (देखें)। फ़ाइल::ग्लोब(3पर्ल)
विवरण के लिए मैनुअल पेज) में पुस्तकालय-फ़ाइल एकाधिक पुस्तकालयों को एक ही पुस्तकालय से मिलाने के लिए
तर्क (अन्यथा आपको एकाधिक की आवश्यकता है -e).

-Iफ़ाइल का नाम
उपयोग फ़ाइल का नाम प्रतीक फ़ाइल उत्पन्न करने के लिए संदर्भ फ़ाइल के रूप में एकीकृत किया गया है
पैकेज ही.

-O[फ़ाइल का नाम]
जनरेट की गई सिंबल फ़ाइल को मानक आउटपुट या पर प्रिंट करें फ़ाइल का नाम यदि निर्दिष्ट किया गया हो,
बजाय करने के लिए डेबियन/टीएमपी/डेबियन/प्रतीक (या पैकेज-बिल्ड-डीआईआर/डेबियन/प्रतीक if -P
प्रयोग किया गया)। अगर फ़ाइल का नाम पहले से मौजूद है, इसकी सामग्री को आधार के रूप में उपयोग किया जाता है
उत्पन्न प्रतीक फ़ाइल। आप इस सुविधा का उपयोग किसी सिंबल फ़ाइल को अपडेट करने के लिए कर सकते हैं
यह आपकी लाइब्रेरी के नए अपस्ट्रीम संस्करण से मेल खाता है।

-t प्रतीक फ़ाइल को संगत प्रारूप के बजाय टेम्पलेट मोड में लिखें
देब-प्रतीक(5). मुख्य अंतर यह है कि टेम्प्लेट मोड में प्रतीक नाम और
पोस्ट-संसाधित प्रतीक नामों के विपरीत टैग अपने मूल रूप में लिखे जाते हैं
संगतता मोड में हटाए गए टैग के साथ। इसके अलावा, कुछ प्रतीक हो सकते हैं
मानक लिखते समय छोड़ दिया गया देब-प्रतीक(5) फ़ाइल (टैग के अनुसार)
प्रसंस्करण नियम) जबकि सभी प्रतीक हमेशा प्रतीक फ़ाइल टेम्पलेट पर लिखे जाते हैं।

-c[0 - 4]
टेम्पलेट के साथ उत्पन्न प्रतीक फ़ाइल की तुलना करते समय किए जाने वाले चेक को परिभाषित करें
फ़ाइल को शुरुआती बिंदु के रूप में उपयोग किया जाता है। डिफ़ॉल्ट रूप से स्तर 1 है। बढ़ते स्तर अधिक करते हैं
जाँच करता है और निचले स्तरों की सभी जाँचें शामिल करता है। लेवल 0 कभी विफल नहीं होता. स्तर 1 विफल रहता है
अगर कुछ प्रतीक गायब हो गए हैं. यदि कुछ नए प्रतीक हैं तो स्तर 2 विफल हो जाता है
परिचय कराया. यदि कुछ पुस्तकालय गायब हो गए हैं तो स्तर 3 विफल हो जाता है। यदि कुछ हो तो स्तर 4 विफल हो जाता है
पुस्तकालयों की शुरुआत की गई है।

इस मान को पर्यावरण चर द्वारा ओवरराइड किया जा सकता है
DPKG_GENSYMBOLS_CHECK_LEVEL.

-q चुप रहें और उत्पन्न प्रतीक फ़ाइल और के बीच कभी भी अंतर उत्पन्न न करें
टेम्प्लेट फ़ाइल को शुरुआती बिंदु के रूप में उपयोग किया जाता है या नई/खोई हुई लाइब्रेरी के बारे में कोई चेतावनी दिखाई जाती है
या नए/खोए हुए प्रतीक। यह विकल्प केवल सूचनात्मक आउटपुट को अक्षम करता है, लेकिन नहीं
स्वयं जाँचता है (देखें) -c विकल्प)।

-aमेहराब मान लीजिये मेहराब प्रतीक फ़ाइलों को संसाधित करते समय होस्ट आर्किटेक्चर के रूप में। इस विकल्प का उपयोग करें
किसी भी आर्किटेक्चर के लिए एक प्रतीक फ़ाइल या अंतर उत्पन्न करें, बशर्ते कि उसके बायनेरिज़ हों
पहले ही उपलब्ध।

-d डिबग मोड सक्षम करें. क्या समझाने के लिए अनेक संदेश प्रदर्शित किए जाते हैं dpkg-gensymbols
करता है.

-V वर्बोज़ मोड सक्षम करें. जेनरेट की गई प्रतीक फ़ाइल में अप्रचलित प्रतीक शामिल हैं
टिप्पणियाँ। इसके अलावा टेम्प्लेट मोड में, पैटर्न प्रतीकों के बाद टिप्पणियाँ आती हैं
पैटर्न से मेल खाने वाले वास्तविक प्रतीकों को सूचीबद्ध करना।

-?, --मदद
उपयोग संदेश दिखाएं और बाहर निकलें।

--संस्करण
संस्करण दिखाएं और बाहर निकलें।

onworks.net सेवाओं का उपयोग करके dpkg-gensymbols का ऑनलाइन उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

लिनक्स कमांड

Ad