Skip to main content

"Ldd" கட்டளை மூலம் ஒரு நிரல் பகிரப்பட்ட நூலகங்களைக் கண்டறியவும்

Anonim

பயன்படுத்த ldd கொடுக்கப்பட்ட நிரல் தேவைப்படும் பகிர்வு நூலகங்களை காட்ட கட்டளை - ஒரு காணாமல் சார்பு இருக்கும் போது வெளியே வேலை பயனுள்ளதாக. இந்த கட்டளை காணாமல் போன செயல்களையும் பொருட்களையும் பட்டியலிடுகிறது.

கட்டளை தொடரியல்

பிழைகள் தவிர்க்க ldd கட்டளையை சரியான இலக்கணத்தை கவனிக்கவும்:

ldd OPTION … கோப்பு …

ஒன்று அல்லது அதற்கு மேற்பட்ட கூடுதல் ldd கட்டளை சுவிட்சுகள் பயன்படுத்தவும் விருப்பம் மேலே உள்ள கட்டளையைப் பாருங்கள்:

--help | இந்த உதவி அச்சிட மற்றும் வெளியேறவும் - பதிப்பு | அச்சு பதிப்பு தகவல் மற்றும் வெளியேறவும் -d, --data-relocs | செயலாக்க தரவு இடமாற்றம் -r, - செயல்-இடப்பெயர்ச்சி | செயல்முறை தரவு மற்றும் செயல்பாடு இடமாற்றங்கள் -u, --unused | பயன்படுத்தாத நேரடி சார்புகளை அச்சிட -v, --verbose | அனைத்து தகவல்களையும் அச்சிட

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

வெளியீடு பின்வரும் ஒத்திருக்கிறது:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)

நம்பமுடியாத நிரலுக்கு எதிராக ldd கட்டளையை ஒருபோதும் இயக்க வேண்டாம், ஏனெனில் இது ldd உண்மையில் செயல்படுத்தப்படலாம். அதற்கு பதிலாக, ஒரு நேரடி மாற்று பயன்படுத்தி நேரடி சார்புகள் மற்றும் முழு சார்புடைய மரத்தைக் காட்டாது:

$ objdump -p / path / to / program | grep தேவை

ஒரு பயன்பாட்டிற்கான பாதையை எவ்வாறு கண்டுபிடிப்பது

பல வழிகளில் நீங்கள் செய்யக்கூடிய எல்டிடி சார்புகளை நீங்கள் கண்டறிய விரும்பினால், பயன்பாட்டிற்கு முழு பாதையை நீங்கள் வழங்க வேண்டும்.

உதாரணமாக, நீங்கள் பயர்பாக்ஸ் பாதையை கண்டுபிடிக்க விரும்புகிறீர்கள்:

$ ஃபயர்ஃபாக்ஸ் / பெயர் கண்டுபிடி $

கண்டுபிடிக்கும் கட்டளையுடன் உள்ள சிக்கல் என்னவென்றால், அது இயங்கக்கூடியது ஆனால் எல்லா இடங்களிலும் பயர்பாக்ஸ் அமைந்துள்ளதை மட்டும் குறிக்காது,

  • /etc/skel/.mozilla/firefox
  • / வீட்டில் // கேச் / மொஸில்லா / பயர்பொக்ஸ்
  • /home//.mozilla/firefox
  • இங்கு / usr / பின் / பயர்பாக்ஸ்
  • / Usr / lib / பயர்பாக்ஸ்
  • / Usr / lib / பயர்பாக்ஸ் / பயர்பாக்ஸ்

இந்த அணுகுமுறை ஒரு ஓவர்கில் ஒரு பிட் ஆகும், மேலும் உங்கள் சலுகைகளை உயர்த்துவதற்கு நீங்கள் sudo கட்டளையைப் பயன்படுத்த வேண்டியிருக்கும், இல்லாவிட்டால் நீங்கள் நிறைய அனுமதி மறுக்கப்படும் பிழைகள் கிடைக்கும்.

பயன்பாட்டின் பாதையை கண்டுபிடிப்பதற்கான கட்டளையைப் பயன்படுத்துவது மிகவும் எளிதானது:

$ இங்கே firefox

இந்த முறை வெளியீடு இதைப் போல இருக்கும்:

இங்கு / usr / பின் / பயர்பொக்ஸ்

/ போன்றவை / பயர்பொக்ஸ்

/ Usr / lib / பயர்பொக்ஸ்

ஃபயர்பிக்காக பகிர்வு நூலகங்களை கண்டுபிடிக்க நீங்கள் இப்போது செய்ய வேண்டியதெல்லாம் பின்வரும் கட்டளையை டைப் செய்கின்றன:

$ ldd / usr / bin / firefox

கட்டளையிலிருந்து வரும் வெளியீடு இதைப் போன்றது:

linux-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 நூலகத்தின் பெயர் மற்றும் ஹெக்ஸ் எண் என்பது நினைவகத்தில் நினைவகம் ஏற்றப்படும் முகவரியாகும்.

=> குறியீடானது ஒரு பாதையை பின்பற்றும் பிற கோடுகளில் நீங்கள் கவனிக்க வேண்டும். இது உடல் பைனரிக்கு பாதையாகும்; ஹெக்ஸ் எண் நூலகம் ஏற்றப்படும் முகவரி.