லினக்ஸில் "ldd" கட்டளை பயன்படுத்தி

எந்தவொரு நிரலிலும் தேவையான பகிர்வு நூலகங்களை உங்களுக்கு காட்ட, ldd கட்டளை பயன்படுத்தப்படலாம்.

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

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

Ldd கட்டளையைப் பயன்படுத்தும் போது இது சரியான இலக்கணமாகும் :

ldd [OPTION] ... கோப்பு ...

மேலே உள்ள கட்டளையில் உள்ள [OPTION] இடத்திற்குச் சேர்க்கக்கூடிய கிடைக்கக்கூடிய ldd கட்டளை சுவிட்சுகள் இங்கு உள்ளன:

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

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

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

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

முக்கியமானது: கட்டளை உண்மையில் இயங்குவதால் நம்பத்தகுந்த நிரலுக்கு எதிராக ldd கட்டளையை இயக்காதே. இது ஒரு பாதுகாப்பான மாற்று, நேரடி சார்புகளை மட்டுமே காட்டுகிறது மற்றும் முழு சார்புடைய மரமும் அல்ல: objdump -p / path / to / program | grep தேவை .

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

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

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

/ பெயர் பெயரிடப்பட்ட தீம்பொருள் கண்டுபிடிக்க

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

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

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

அதனால்தான் ஃபயர்பாக்ஸ்

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

இங்கு / 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)

Linux-vdso.so.1 நூலகத்தின் பெயர் மற்றும் ஹெக்ஸ் எண் என்பது நினைவகத்தில் நினைவகம் ஏற்றப்படும் முகவரி.

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