कुनै पनि कार्यक्रम द्वारा आवश्यक आवश्यक लाइब्रेरीहरू देखाउनका लागि ldd आदेश प्रयोग गर्न सकिन्छ।
यो अनुपस्थित निर्भरता हुँदा काम गर्ने कामको लागि उपयोगी छ र छुटेका प्रकार्य र वस्तुहरू सूचीबद्ध गर्न प्रयोग गर्न सकिन्छ।
कमांड सिन्टटेक्स ldd
यो उचित सिन्ट्याक्स हो जब ldd कमांड प्रयोग गरेर:
ldd [OPTION] ... फाइल ...यहाँ उपलब्ध ldd आदेश स्विचहरू छन् जुन [OPTION] माथिको आदेशमा स्पेस गर्न सकिन्छ:
--help यस सहायता र बाहिर निकलें --विवरण प्रिंट संस्करण जानकारी र बाहिर निकलें --data-relocs प्रक्रिया डेटा relocations -r, --फंक्शन-रिक्सिक्स प्रक्रिया डेटा र प्रकार्य relocations -u, - अप्रयुक्त मुद्रण अप्रयुक्त प्रत्यक्ष निर्भरता -v, --सर्भरमा सबै जानकारी छाप्नुहोस्कसरी ldd कमांड प्रयोग गर्नुहोस्
तपाईं कुनै पनि ldd आदेश बाट थप जानकारी प्राप्त गर्न निम्न आदेश प्रयोग गर्न सक्नुहुन्छ:
ldd -v / path / to / program / executableआउटपुट संस्करण जानकारी साथै साथ साझा लाइब्रेरीहरूमा पथहरू र ठेगानाहरू देखाउँछ, जस्तै:
ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)यदि SO फाइल अवस्थित छैन भने, तपाइँले निम्न आदेश प्रयोग गरी हराएको पुस्तकालयहरू पाउन सक्नुहुन्छ:
ldd -d path / to / programउत्पादन निम्नसँग समान छ:
लिनक्स-vdso.so.1 (0x00007ffc2936b000) /घर / gary/demo/garylib.so => भेटिएन libibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)महत्त्वपूर्ण: अनावश्यक कार्यक्रमको विरुद्धमा ldd आदेशलाई कहिल्यै नदिनुहोस् जुन आदेशले वास्तवमा यसलाई कार्यान्वयन गर्न सक्छ। यो एक सुरक्षित विकल्प हो जसले केवल प्रत्यक्ष निर्भरताहरू देखाउँछ र पूर्ण निर्भरता वृक्ष देखाउँछ: objdump -p / path / to / program | खाँचो छ ।
अनुप्रयोगमा कसरी पत्ता पत्ता लगाउने?
यदि तपाइँ आफ्नो लिडको साथ निर्भरताहरू फेला पार्न चाहानुहुन्छ भने तपाईंले अनुप्रयोगमा पूर्ण मार्ग उपलब्ध गराउनु भएको छ, जुन तपाईं धेरै तरिकाले गर्न सक्नुहुनेछ।
उदाहरणका लागि, यो तपाइँ कसरी फायरफक्सको बाटो पत्ता लगाउनुहुन्छ:
फेला पार्नुहोस् / -name फायरफक्सतथापि, खोज आदेशको साथ समस्या यो हो कि यो केवल कार्यान्वयन योग्य छैन तर हरेक ठाउँ फायरफक्स स्थित छ, जस्तै यो:
- /etc/skel/.mozilla/firefox
- / home // cache / mozilla / firefox
- /home//.mozilla/firefox
- / usr / bin / फायरफक्स
- / usr / lib / फायरफक्स
- / usr / lib / फायरफक्स / फायरफक्स
यो दृष्टिकोण ओभरक्ल को एक सा छ र तपाईंलाई सुअवसरहरू बढाउन सुडो कमान प्रयोग गर्न आवश्यक हुन सक्छ, र तपाईले सम्भावना अनुमति पाउनु भएको छ कि त्रुटिहरू अस्वीकार गर्यो।
कोस कमान अनुप्रयोगको पथ फेला पार्न यसको सट्टा सजिलो छ:
जहाँ फायरफक्सयो समय यो उत्पादन यस्तो हुन सक्छ:
/ usr / bin / firefox
/ etc / फायरफक्स
/ usr / lib / फायरफक्स
फायरफक्सका लागि साझा गरिएका पुस्तकालयहरू पत्ता लगाउन तपाईलाई अहिले निम्न गर्नु पर्छ निम्न आदेश टाइप गर्नुहोस्:
ldd / usr / bin / firefoxआदेशबाट आउटपुट यो केहि हुनेछ:
लिनक्स-vdso.so.1 (0x00007ffff8364000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)
libstdc ++। so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)
लिनक्स-vdso.so.1 लाईब्रेरीको नाम हो र हेक्स नम्बर ठेगाना हो जहाँ पुस्तकालय मेमोरीमा लोड हुनेछ।
तपाईले अन्य धेरै लाइनहरूमा ध्यान दिनुहुनेछ जुन => प्रतीक मार्ग द्वारा पछ्याइएको छ। यो भौतिक बाइनरीको बाटो हो; हेक्स नम्बर ठेगाना हो जहाँ पुस्तकालय लोड हुनेछ।