පුස්තකාලයක් ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කරන්නේ කෙසේද?


174

ලිනක්ස් වලදී, පුස්තකාලයක් ස්ථාපනය කර තිබේද නැද්ද යන්න පරීක්ෂා කරන්නේ කෙසේද? (පා command මාලාවේ විධාන රේඛාවෙන්).

දැන් මගේ විශේෂිත අවස්ථාවෙහිදී, මට libjpeg ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කිරීමට අවශ්‍යය.


ඔබ භාවිතා කරන්නේ කුමන බෙදාහැරීමද?
අරය

Answers:


229

මෙය ඩිස්ට්‍රෝ-ස්වාධීන * මෝස්තරයකින් කිරීමට ඔබට gd සමඟ ldconfig භාවිතා කළ හැකිය:

ldconfig -p | grep libjpeg

Libjpeg ස්ථාපනය කර නොමැති නම්, ප්‍රතිදානයක් නොමැත. එය ස්ථාපනය කර ඇත්නම්, ලබා ගත හැකි සෑම අනුවාදයක් සඳහාම ඔබට රේඛාවක් ලැබෙනු ඇත.

ඔබට අවශ්‍ය ඕනෑම පුස්තකාලයකින් libjpeg ප්‍රතිස්ථාපනය කරන්න, ඔබට පුස්තකාල ලබා ගත හැකිදැයි පරීක්ෂා කිරීමේ සාමාන්‍ය, ඩිස්ට්‍රෝ-ස්වාධීන * ක්‍රමයක් තිබේ.

කිසියම් හේතුවක් නිසා ldconfig වෙත මාර්ගය සකසා නොමැති නම්, සාමාන්‍යයෙන් එහි සම්පූර්ණ මාර්ගය භාවිතා කරමින් ඔබට එය ක්‍රියාත්මක කිරීමට උත්සාහ කළ හැකිය /sbin/ldconfig.

** 99% වාරයක් *


2
මෙය පිළිතුර ලෙස පිළිගත යුතුය. මහා!

1
පුස්තකාලයක dev අනුවාදය (ශීර්ෂයන්) පරීක්ෂා කිරීම සඳහා මෙය භාවිතා කළ නොහැක, නේද?
andig

2
ඔබට 99% වාරයක් නියම කළ හැකිද ? bash: ldconfig: command not foundxfce සමඟ ඩෙබියන් x64 ජෙසී මත! ඩෙබියන් වෙබ් අඩවියේ නැවත
නිර්දේශිත ඩෙබියන්

4
@ ටොම්සැටෝ: ඔබ සුපිරි පරිශීලකයෙකු නොවී එය ක්‍රියාත්මක කිරීමට උත්සාහ කරන්නේ නම් ldconfigලබා ගත නොහැක ( command not foundපෙන්වයි).
ගෞතියර්

2
/sbin/ldconfig -pමූල වීමට අවශ්‍ය නොවී මා වෙනුවෙන් වැඩ කරයි.
පේද්‍රෝ ගිමෙනෝ

34

ඔබේ බෙදාහැරීමේ පැකේජ කළමණාකරු සමඟ ඔබට පරීක්ෂා කළ හැකිය (යෝග්‍යතාව, yum, ...) නමුත් ඔබ ඔබේ බෙදාහැරීම ලබා නොදුන් නිසා මට ඔබට නිවැරදි විධානය ලබා දිය නොහැක.

ක්‍රියාත්මක කිරීමට තවත් ක්‍රමයක් විය හැකිය gcc -ljpeg, ඔබට 'ld: පුස්තකාලය -ljpeg සඳහා හමු නොවුනහොත්' එයින් අදහස් වන්නේ gcc විසින් පුස්තකාලය සොයාගෙන නොමැති බවයි (නමුත් එය ස්ථාපනය කර නොමැති බව එයින් අදහස් නොවේ), ඔබට 'නිර්වචනය නොකළ සංකේත වැනි යමක් ලැබුනහොත් : "_main", යොමු කර ඇත්තේ: ... 'එයින් අදහස් කරන්නේ libjpeg සොයාගෙන ඇති බවයි.

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* පද්ධතිය තුළ ස්ථාපනය කර ඇති ලිබ් දැයි සොයා ගැනීමට වෙනත් ක්‍රමයක් වේ

එය පරීක්ෂා කිරීමට තවත් බොහෝ ක්‍රම තිබේ, ඔබ අපට තවත් සන්දර්භයක් ලබා දෙන්නේ නම් (ඔබ libjpeg ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කර බැලිය යුත්තේ ඇයි) ඔබේ විශේෂිත නඩුව සඳහා හොඳම විසඳුම ඔබට ලබා දිය හැකිය.


යෝග්‍යතාවයෙන් එය සොයා ගන්නේ කෙසේද?
බීබීකේ

17

මම කොහේද උපයෝගීතාව භාවිතා කරමි.

නියැදිය:

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

12

මම මෙය භාවිතා කරමි:

gcc -lpng

ලිබ් ස්ථාපනය කළ විට, එය ලබා දෙයි:

undefined reference to 'main'

ලිබ් ස්ථාපනය කර නොමැති විට :

cannot find -lpng

9

ණය පදනම් කරගත් බෙදා හැරීම සඳහා ඔබට කළ හැකිය

dpkg -s packagename

නැතහොත් ඔබ ගොනු නාමය පමණක් දන්නේ නම්, භාවිතා කරන්න

locate filename

ගොනු නාමය සාමාන්‍යයෙන් libsomething.so [.version] වේ.


1
ගොනු නාමය ස්ථිතික අනුවාදය සඳහා "libsomething.a" වැනි දෙයක් විය හැකිය.
අරය

dpkg -sපුස්තකාලයට වඩා සියුම්ව හෝ සැලකිය යුතු ලෙස වෙනස් විය හැකි සත්‍ය පැකේජ නාමය එයට අවශ්‍ය නිසා මට උපයෝගීතාවයේ සීමාවක් තිබේ. මම භාවිතා කරමිdpkg -s|grep LIBRARY
ඩ්‍රූ ස්ටීවන්ස්

2
indinomite apt-file ඔබේ මිතුරා :)
අරය

4

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

2

මෙය සෑම විටම ලිනක්ස් හි වින්‍යාසකරණ මෙවලම් මඟින් සිදු කරයි.

Autocconf සහ KDevelop පිළිබඳ මෙම නිබන්ධනය දෙස බලන්න .

වෙනත් උපක්‍රම වැනි ldconfigසහ වැනි විධානයන් භාවිතා කරනු ඇත dpkg.


1

එය ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කිරීමට ඔබට dpkg භාවිතා කිරීමට උත්සාහ කළ හැකිය.

dpkg --list | grep [some_key_words_of_your_lib]

CentOS මත, ඔබට මෙය උත්සාහ කළ හැකිය.

rpm -qa [lib_name]


සටහන: වැඩ කරන්නේ ඩේබියන් පදනම් කරගත් ඩිස්ට්‍රෝස් සඳහා පමණි
ALex_hha

@ALex_hha ඔව්, ස්තූතියි, මෙය අවධාරණය කළ යුතුය. CentOS හෝ රතු තොප්පි පදනම් කරගත් පද්ධති මත, pkg-configඒ වෙනුවට භාවිතා කරන්න.
ස්කොට් යැං
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.