ldd ব্যবহার করুন কোনো প্রদত্ত প্রোগ্রামের জন্য প্রয়োজনীয় শেয়ার্ড লাইব্রেরি দেখানোর কমান্ড। যখন অনুপস্থিত নির্ভরতা থাকে তখন কাজ করার জন্য ldd কমান্ডটি কার্যকর। কমান্ড অনুপস্থিত ফাংশন এবং বস্তুর তালিকাও করে।
ldd কমান্ড সিনট্যাক্স
ত্রুটি এড়াতে ldd কমান্ডের জন্য সঠিক বাক্য গঠন পর্যবেক্ষণ করুন:
ldd [OPTION]... FILE...
উপরের কমান্ডে [OPTION] স্পটে ঢোকানো এক বা একাধিক উপলব্ধ ldd কমান্ড সুইচ ব্যবহার করুন:
- --help:এই সাহায্য প্রিন্ট করুন এবং প্রস্থান করুন।
- --সংস্করণ:সংস্করণ তথ্য মুদ্রণ করুন এবং প্রস্থান করুন।
- -d, --data-relocs:ডেটা স্থানান্তর প্রক্রিয়া করুন।
- -r, --function-relocs:প্রসেস ডেটা এবং ফাংশন স্থানান্তর।
- -u, --unused:অব্যবহৃত সরাসরি নির্ভরতা প্রিন্ট করুন।
- -v, --verbose:সমস্ত তথ্য প্রিন্ট করুন।
কিভাবে ldd কমান্ড ব্যবহার করবেন
একটি প্রোগ্রাম সম্পর্কে আরও তথ্য পেতে নিম্নলিখিত কমান্ডটি চালান:
ldd -v /path/to/program/executable
আউটপুট সংস্করণ তথ্যের পাশাপাশি ভাগ করা লাইব্রেরির পথ এবং ঠিকানাগুলি দেখায়, যেমন:
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 => পাওয়া যায়নি libc.so.6 => usr/lib/libc.so.6 (0x00007fd0c6259000<) br />/lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
কোনো অবিশ্বস্ত প্রোগ্রামের বিরুদ্ধে ldd কমান্ড চালাবেন না কারণ ldd কমান্ড এটি কার্যকর করতে পারে। পরিবর্তে, একটি নিরাপদ বিকল্প ব্যবহার করুন যা শুধুমাত্র সরাসরি নির্ভরতা দেখায় এবং সম্পূর্ণ নির্ভরতা গাছ নয়:
objdump -p /path/to/program | grep প্রয়োজন
কিভাবে একটি অ্যাপ্লিকেশনের পথ খুঁজে বের করতে হয়
আপনি যদি ldd এর মাধ্যমে এর নির্ভরতা খুঁজে পেতে চান তবে আপনাকে একটি অ্যাপ্লিকেশনের সম্পূর্ণ পথ প্রদান করতে হবে, যা আপনি বিভিন্ন উপায়ে করতে পারেন।
উদাহরণস্বরূপ, এইভাবে ফায়ারফক্সের পথ খুঁজে বের করতে হয়:
খুঁজুন / -নাম ফায়ারফক্স
ফাইন্ড কমান্ডের সমস্যা হল যে এটি এক্সিকিউটেবল এবং ফায়ারফক্স যে সব জায়গায় অবস্থিত তা এইভাবে তালিকাভুক্ত করে:
/etc/skel/.mozilla/firefox
/home//cache/mozilla/firefox
/home//.mozilla/firefox
/usr/bin/Firefox
/usr/lib/Firefox
/usr/lib/Firefox/Firefox
এই পদ্ধতিটি কিছুটা ওভারকিল এবং আপনার বিশেষাধিকারগুলিকে উন্নত করার জন্য আপনাকে sudo কমান্ডটি ব্যবহার করতে হতে পারে, অন্যথায় আপনি ম্যান পারমিশন-অস্বীকৃত ত্রুটি পেতে পারেন৷
এর পরিবর্তে একটি অ্যাপ্লিকেশনের পথ খুঁজে পেতে whereis কমান্ডটি ব্যবহার করা সহজ:
ফায়ারফক্স কোথায় আছেএইবার আউটপুট এইরকম দেখতে পারে:
/usr/bin/firefox
/etc/firefox
/usr/lib/firefox
তারপর, ফায়ারফক্সের জন্য ভাগ করা লাইব্রেরিগুলি খুঁজতে, নিম্নলিখিত কমান্ডটি প্রবেশ করান:
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.usrb/6 =/libm.so.6 (0x00007feb988f6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)
libc.so.6 => /lib/libcli .so.6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)
Linux-vdso.so.1 হল লাইব্রেরির নাম এবং হেক্স নম্বর হল ঠিকানা যেখানে লাইব্রেরি মেমরিতে লোড করা হয়৷
অনেক লাইনে, => প্রতীক একটি পথ দ্বারা অনুসরণ করা হয়. এটি ভৌত বাইনারি পথ। হেক্স নম্বর হল ঠিকানা যেখানে লাইব্রেরি লোড করা হয়।