কম্পিউটার

লিনাক্সে ldd কমান্ড ব্যবহার করা

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)
লিনাক্সে ldd কমান্ড ব্যবহার করা

যদি 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 কমান্ড চালাবেন না কারণ ldd কমান্ড এটি কার্যকর করতে পারে। পরিবর্তে, একটি নিরাপদ বিকল্প ব্যবহার করুন যা শুধুমাত্র সরাসরি নির্ভরতা দেখায় এবং সম্পূর্ণ নির্ভরতা গাছ নয়:

objdump -p /path/to/program | grep প্রয়োজন
লিনাক্সে ldd কমান্ড ব্যবহার করা

কিভাবে একটি অ্যাপ্লিকেশনের পথ খুঁজে বের করতে হয়

আপনি যদি 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 কমান্ড ব্যবহার করা

তারপর, ফায়ারফক্সের জন্য ভাগ করা লাইব্রেরিগুলি খুঁজতে, নিম্নলিখিত কমান্ডটি প্রবেশ করান:

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 হল লাইব্রেরির নাম এবং হেক্স নম্বর হল ঠিকানা যেখানে লাইব্রেরি মেমরিতে লোড করা হয়৷

অনেক লাইনে, => প্রতীক একটি পথ দ্বারা অনুসরণ করা হয়. এটি ভৌত ​​বাইনারি পথ। হেক্স নম্বর হল ঠিকানা যেখানে লাইব্রেরি লোড করা হয়।


  1. লিনাক্সে xargs কমান্ড কিভাবে ব্যবহার করবেন

  2. ফাইন্ড কমান্ড ব্যবহার করে লিনাক্সে একটি ফাইল কীভাবে সন্ধান করবেন

  3. লিনাক্সে 'ইকো' কমান্ড কীভাবে ব্যবহার করবেন

  4. লিনাক্সে টি কমান্ড কীভাবে ব্যবহার করবেন