استخدم ال LDD أمر لإظهار المكتبات المشتركة المطلوبة من قبل أي برنامج معين - مفيدة للعمل بها عندما يكون هناك تبعية في عداد المفقودين. يسرد الأمر أيضًا الوظائف المفقودة والكائنات.
قيادة الأوامر ldd
مراقبة بناء الجملة الصحيح لأمر ldd لتجنب الأخطاء:
ldd OPTION … FILE …
استخدم واحد أو أكثر من مفاتيح تبديل الأمر ldd المتاحة ، المدرجة في اختيار بقعة في الأمر أعلاه: - مساعدة اطبع هذه المساعدة والخروج - النسخه طباعة معلومات الإصدار والخروج -d، --data-relocs | عمليات نقل البيانات العملية -r ، - الوظائف- relocs | بيانات عملية وترحيل وظيفة -u ، - غير مستخدم | طباعة التبعيات المباشرة غير المستخدمة -v ، --verbose | طباعة جميع المعلومات تنفيذ الأمر التالي للحصول على مزيد من المعلومات حول أحد البرامج: $ 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 => not 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 بحاجة يجب عليك توفير المسار الكامل للتطبيق إذا كنت تريد العثور على تبعياته مع ldd ، والتي يمكنك القيام بها بطرق عديدة. على سبيل المثال ، هذه هي الطريقة التي تجد بها المسار إلى Firefox: $ find / -name firefox
ومع ذلك ، فإن مشكلة الأمر find ، هي أنها لن تقوم فقط بإدراج الملف القابل للتنفيذ ولكن في كل مكان يوجد فيه Firefox ، كما يلي: يعتبر هذا الأسلوب قليلاً من المبالغة ، وقد تحتاج إلى استخدام الأمر sudo لرفع الامتيازات الخاصة بك ، وإلا فمن المحتمل أن تحصل على الكثير من أخطاء رفض الأذونات. بدلاً من ذلك ، من الأسهل بكثير استخدام الأمر whereis للعثور على مسار التطبيق: $ whereis firefox
هذه المرة قد يبدو الإخراج كما يلي: / البيرة / بن / فايرفوكس / الخ / فايرفوكس / البيرة / ليب / فايرفوكس كل ما عليك فعله الآن للعثور على المكتبات المشتركة لـ 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.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 هو اسم المكتبة والرقم السداسي هو العنوان الذي سيتم تحميل المكتبة فيه في الذاكرة. ستلاحظ على العديد من الأسطر الأخرى التي يتبعها الرمز => مسار. هذا هو المسار إلى ثنائي المادية ؛ رقم سداسي عشرية هو العنوان حيث سيتم تحميل المكتبة. كيفية استخدام القيادة ldd
كيفية البحث عن المسار إلى تطبيق