কিভাবে একটি লাইব্রেরি ইনস্টল করা আছে তা যাচাই করবেন?


166

লিনাক্সে, আমি কোনও লাইব্রেরি ইনস্টল করা আছে কিনা তা কীভাবে পরীক্ষা করব? (অবশ্যই কমান্ড লাইন থেকে)।

আমার নির্দিষ্ট ক্ষেত্রে এখন, আমি libjpeg ইনস্টল করা আছে কিনা তা পরীক্ষা করতে চাই।


আপনি কোন বিতরণ ব্যবহার করছেন?
ব্যাসার্ধ

উত্তর:


209

ডিস্ট্রো-ইন্ডিপেন্ডেন্ট * ফ্যাশনে এটি করতে আপনি গ্রেডের সাথে ldconfig ব্যবহার করতে পারেন, এর মতো:

ldconfig -p | grep libjpeg

Libjpeg ইনস্টল না করা থাকলে, আউটপুট থাকবে না। যদি এটি ইনস্টল করা থাকে তবে প্রতিটি সংস্করণ উপলভ্য করার জন্য আপনি একটি লাইন পাবেন।

আপনি যে কোনও লাইব্রেরি দ্বারা libjpeg প্রতিস্থাপন করুন এবং আপনার কাছে লাইব্রেরি উপলব্ধতার জন্য জেনেরিক, ডিসট্রো-ইন্ডিপেন্ডেন্ট * উপায় রয়েছে।

যদি কোনও কারণে ldconfig যাওয়ার পথটি সেট না করা থাকে তবে আপনি সাধারণত এটির পুরো পথটি ব্যবহার করে প্রার্থনা করার চেষ্টা করতে পারেন /sbin/ldconfig

** 99% বার *


2
এটি উত্তর হিসাবে গ্রহণ করা উচিত। গ্রেট!

1
কোনও লাইব্রেরির ডিভ সংস্করণ (শিরোনাম) পরীক্ষা করার জন্য এটি ব্যবহার করা সম্ভব নয়, তাই না?
অ্যান্ডিগ

2
আপনি 99% বার নির্দিষ্ট করতে পারেন ? bash: ldconfig: command not foundxfce সহ দেবিয়ান x64 জেসি! এটি ডেবিয়ান ওয়েবসাইটে পুনরাবৃত্ত ডেবিয়ান রিলিজ ...
টোম জ্যাটো

4
@ টোম্যাজাটো: সুপারভাইজার ldconfigনা command not foundকরে চালানোর চেষ্টা করা থাকলে ( প্রদর্শিত হবে না) উপলভ্য ।
গৌথির

2
/sbin/ldconfig -pরুট হওয়ার প্রয়োজন ছাড়াই আমার জন্য কাজ করে।
পেড্রো গিমেনো

34

আপনি আপনার বিতরণের প্যাকেজ ম্যানেজারের সাথে চেক করতে পারেন (প্রবণতা, ইয়াম, ...) তবে আপনি আপনার বিতরণটি দেননি বলে আমি আপনাকে সঠিক আদেশ দিতে পারি না।

আর একটি উপায় চালানো যেতে পারে gcc -ljpeg, যদি আপনি 'ld: লাইব্রেরিটি -ljpeg এর জন্য খুঁজে পান না' এর অর্থ এটি হ'ল gcc গ্রন্থাগারটি খুঁজে পায় নি (তবে এটির অর্থ এই নয় যে এটি ইনস্টল করা নেই), যদি আপনি 'অপরিবর্তিত চিহ্ন' জাতীয় কিছু পান : "_ মেইন", এর থেকে রেফারেন্স: ... 'এর অর্থ হ'ল লিবিজপেগ পাওয়া গেছে।

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* সিস্টেমে lib ইনস্টল করা আছে কিনা তা খুঁজে বের করার অন্য কিছু উপায়

এটি যাচাই করার আরও অনেক উপায় আছে, আপনি যদি আমাদের আরও প্রসঙ্গটি দেন (তবে আপনাকে লিবিজেপেইগ ইনস্টল করা আছে কিনা তা কেন পরীক্ষা করা প্রয়োজন) আমরা আপনাকে আপনার নির্দিষ্ট ক্ষেত্রে সেরা সমাধান দিতে পারি could


প্রবণতা ব্যবহার করে এটি কীভাবে খুঁজে পাবেন?
বিবিকে

17

আমি যেখানে ইউটিলিটি ব্যবহার করি ।

নমুনা:

l1feh4ck3r@xxx:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la

11

আমি এটি ব্যবহার:

gcc -lpng

যখন lib ইনস্টল করা হয়, ফলন হয়:

undefined reference to 'main'

যখন lib ইনস্টল করা হয় না :

cannot find -lpng

9

দেব-ভিত্তিক বিতরণের জন্য আপনি করতে পারেন

dpkg -s packagename

অথবা আপনি যদি কেবল ফাইলের নাম জানেন তবে ব্যবহার করুন

locate filename

ফাইলের নামটি সাধারণত libsomething.so [.version] হয়।


1
স্ট্যাটিক সংস্করণের জন্য ফাইলের নাম "libsomething.a" এর মতো কিছুও হতে পারে।
ব্যাসার্ধ

আমি dpkg -sইউটিলিটি সীমাবদ্ধ মনে করি কারণ এটি প্রকৃত প্যাকেজটির নাম চায় যা গ্রন্থাগারের থেকেই সূক্ষ্মভাবে বা উল্লেখযোগ্যভাবে পৃথক হতে পারে। আমি ব্যবহার করিdpkg -s|grep LIBRARY
ড্রয় স্টিফেন্স

2
@ জেনোমাইট এপটি-ফাইলটি আপনার বন্ধু :)
ব্যাসার্ধে

4

রেডহাট ভিত্তিক সিস্টেমে, কোনও গ্রন্থাগার ইনস্টল রয়েছে কিনা তা যাচাই করতে পিকেজি-কনফিগার ব্যবহার করতে পারেন। অনেকগুলি আরপিএম বাইনারি প্রকৃতপক্ষে ইনস্টলেশনটি চালানোর আগে একই চেকগুলি তৈরি করে, তাই আমরা যুক্তিসঙ্গতভাবে এর সত্যতার উপর নির্ভর করতে পারি।

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


1

আপনি এটি ইনস্টল করা আছে কিনা তা পরীক্ষা করতে dpkg ব্যবহার করার চেষ্টা করতে পারেন।

dpkg --list | grep [some_key_words_of_your_lib]

এছাড়াও, CentOS এ, আপনি এটি ব্যবহার করে দেখতে পারেন।

rpm -qa [lib_name]


দ্রষ্টব্য: কেবলমাত্র
দেবিয়ান

@ এলেক্স_এইহ্যা হ্যাঁ, আপনাকে ধন্যবাদ, এটির উপর জোর দেওয়া উচিত। CentOS বা লাল টুপি ভিত্তিক সিস্টেমে pkg-configপরিবর্তে ব্যবহার করুন।
স্কট ইয়াং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.