सवाल कैसे पुस्तकालय स्थापित किया गया है यह जांचने के लिए?


लिनक्स में, मैं कैसे जांचूं कि पुस्तकालय स्थापित है या नहीं? (पाठ्यक्रम की कमांड लाइन से)।

अब मेरे विशिष्ट मामले में, मैं जांचना चाहता हूं कि libjpeg स्थापित है या नहीं।


139
2017-08-16 16:02


मूल


आप किस वितरण का उपयोग कर रहे हैं? - radius


जवाब:


एक distro- स्वतंत्र * फैशन में ऐसा करने के लिए आप grep के साथ ldconfig का उपयोग कर सकते हैं, इस तरह:

ldconfig -p | grep libjpeg

अगर libjpeg स्थापित नहीं है, तो कोई आउटपुट नहीं होगा। यदि यह स्थापित है, तो आपको प्रत्येक संस्करण के लिए एक लाइन मिल जाएगी।

किसी भी पुस्तकालय द्वारा libjpeg को बदलें, और आपके पास लाइब्रेरी उपलब्धता की जांच करने का एक सामान्य, distro-independent * तरीका है।

अगर किसी कारण से ldconfig का पथ सेट नहीं है, तो आप आमतौर पर इसे अपने पूर्ण पथ का उपयोग करके इसे आमंत्रित करने का प्रयास कर सकते हैं /sbin/ldconfig

** 99% बार *


174
2018-06-06 22:19



इसे उत्तर के रूप में स्वीकार किया जाना चाहिए। महान!
पुस्तकालय के देव संस्करण (शीर्षलेख) की जांच के लिए इसका उपयोग करना संभव नहीं है, है ना? - andig
क्या आप निर्दिष्ट कर सकते हैं 99% बार? bash: ldconfig: command not found xfce के साथ डेबियन x64 जेसी पर! यह डेबियन वेबसाइट पर अनुशंसित डेबियन रिलीज है ... - Tomáš Zato
@ TomášZato: ldconfig उपलब्ध नहीं है (command not found दिखाता है) यदि आप बिना सुपरसियर के इसे चलाने की कोशिश करते हैं। - Gauthier
/sbin/ldconfig -p जड़ होने की आवश्यकता के बिना मेरे लिए काम करता है। - Pedro Gimeno


आप अपने वितरण (योग्यता, यम, ...) के पैकेज मैनेजर से जांच सकते हैं लेकिन जैसे ही आपने अपना वितरण नहीं दिया है, मैं आपको सही आदेश नहीं दे सकता।

एक और तरीका चलाने के लिए किया जा सकता है gcc -ljpeg, यदि आपको 'ld: लाइब्रेरी नहीं मिली है- ljpeg' का अर्थ है कि gcc को लाइब्रेरी नहीं मिली है (लेकिन इसका मतलब यह नहीं है कि यह इंस्टॉल नहीं है), अगर आपको 'अपरिभाषित प्रतीकों: "_main" जैसे कुछ मिलता है, संदर्भित से: ... 'इसका मतलब है कि libjpeg पाया गया है।

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* सिस्टम में स्थापित lib में यह जानने का कोई और तरीका है

यह जांचने के कई अन्य तरीके हैं, यदि आप हमें अधिक संदर्भ देते हैं (आपको यह जांचने की आवश्यकता क्यों है कि libjpeg इंस्टॉल है या नहीं) तो हम आपको अपने विशिष्ट मामले के लिए सबसे अच्छा समाधान दे सकते हैं।


32
2017-08-16 16:16



योग्यता का उपयोग करके इसे कैसे ढूंढें? - BBK


मैं उपयोग कर रहा हूँ कहाँ है उपयोगिता।
नमूना:

l1feh4ck3r @ xxx: ~ $ जहां libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la

15
2017-08-17 01:00





डेब-आधारित वितरण के लिए आप कर सकते हैं

dpkg -s packagename

या यदि आप केवल फ़ाइल नाम जानते हैं, तो उपयोग करें

locate filename

फ़ाइल नाम आमतौर पर libsomething.so [.version] है।


8
2017-08-16 16:28



फ़ाइल नाम स्थिर संस्करण के लिए "libsomething.a" जैसा कुछ भी हो सकता है। - radius
मुझे लगता है dpkg -s उपयोगिता में सीमित, क्योंकि यह वास्तविक पैकेज नाम चाहता है, जो पुस्तकालय से ही अलग या महत्वपूर्ण रूप से भिन्न हो सकता है। मैं उपयोग करता हूं dpkg -s|grep LIBRARY - Drew Stephens
@dinomite apt-file आपका दोस्त है :) - radius


मैं इसका उपयोग करता हूं:

gcc -lpng

जब lib स्थापित है, यह उपज:

undefined reference to 'main'

जब lib है नहीं स्थापित:

cannot find -lpng

8
2018-03-31 14:50





Redhat आधारित सिस्टम पर, कोई यह निर्धारित करने के लिए कि कोई लाइब्रेरी स्थापित है या नहीं, pkg-config का उपयोग कर सकते हैं। कई आरपीएम बाइनरी वास्तव में स्थापना के साथ आगे बढ़ने से पहले एक ही चेक बनाते हैं, इसलिए हम उचित रूप से इसकी सत्यता पर भरोसा कर सकते हैं।

pkg-config --cflags jpeg

pkg-config --libs jpeg

pkg-config --cflags "jpeg >= 1.0.0" # for version check
pkg-config  --modversion jpeg | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }' #version check

3
2018-02-07 09:35





यह लिनक्स पर कॉन्फ़िगरेशन टूल द्वारा हर समय किया जाता है।

इसे देखो ऑटोकॉन्फ और केडीवेल के बारे में ट्यूटोरियल

अन्य चालें जैसे कमांड का उपयोग करेंगी ldconfig तथा dpkg


1
2017-08-16 16:11





आप यह जांचने के लिए डीपीकेजी का उपयोग करने का भी प्रयास कर सकते हैं कि यह इंस्टॉल है या नहीं।

dpkg --list | grep [some_key_words_of_your_lib]


0
2017-10-25 08:09



नोट: केवल डेबियन आधारित distros के लिए काम करेगा - ALex_hha