ldd(1)

الاسم
ldd - يطبع تبعيات الكائنات المشتركة

موجز
ldd [الخيار ...] الملف ...

الوصف
يطبع ldd الكائنات المشتركة (المكتبات المشتركة) التي يتطلبها كل برنامج أو كائن مشترك محدد في سطر الأوامر. إليك مثال على استخدامه ومخرجاته:

    $ ldd /bin/ls;
        linux-vdso.so.1 (0x00007ffcc3563000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
        /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)

في الحالة المعتادة، يستدعي ldd الرابط الديناميكي القياسي (انظر ld.so(8)) مع ضبط متغير البيئة LD_TRACE_LOADED_OBJECTS على القيمة 1. يؤدي هذا إلى جعل الرابط الديناميكي يفحص التبعيات الديناميكية للبرنامج، ويعثر (وفقًا للقواعد الموضحة في ld.so(8)) على الكائنات التي تلبي تلك التبعيات ويحملها. يعرض ldd لكل تبعية موقع الكائن المطابق والعنوان (بالنظام الست عشري) الذي حُمّل عنده. (تبعيات linux-vdso و ld-linux المشتركة هي حالات خاصة؛ انظر vdso(7) و ld.so(8).)

  الأمن
يرجى الحذر من أنه في بعض الظروف (على سبيل المثال، عندما يحدد البرنامج مفسر ELF غير ld-linux.so)، قد تحاول بعض إصدارات ldd الحصول على معلومات التبعية عبر محاولة تنفيذ البرنامج مباشرةً، مما قد يؤدي إلى تنفيذ أي كود مُعرَّف في مفسر ELF الخاص بالبرنامج، وربما تنفيذ البرنامج نفسه. (قبل glibc 2.27، كان تنفيذ ldd الرئيسي يقوم بذلك على سبيل المثال، رغم أن معظم التوزيعات وفرت إصداراً معدلاً لا يفعل ذلك.)

لذلك، يجب ألا تستخدم ldd أبداً على ملف تنفيذي غير موثوق، حيث قد يؤدي ذلك إلى تنفيذ كود عشوائي. والبديل الأكثر أماناً عند التعامل مع الملفات التنفيذية غير الموثوقة هو:

    $ objdump -p /مسار/إلى/البرنامج | grep NEEDED;

لاحظ مع ذلك أن هذا البديل يظهر التبعيات المباشرة للملف التنفيذي فقط، بينما يظهر ldd شجرة التبعيات الكاملة للملف التنفيذي.

الخيارات

--version
    اطبع رقم إصدار ldd.

--verbose
-v
    اطبع كل المعلومات، بما في ذلك، على سبيل المثال، معلومات إصدار الرموز.

--unused
-u
    اطبع التبعيات المباشرة غير المستخدمة. (منذ glibc 2.3.4.)

--data-relocs
-d
    قم بإعادة التوطين وأبلغ عن أي كائنات مفقودة (ELF فقط).

--function-relocs
-r
    قم بإعادة التوطين لكل من كائنات البيانات والوظائف، وأبلغ عن أي كائنات أو وظائف مفقودة (ELF فقط).

--help
    معلومات الاستخدام.

العلل
ldd لا يعمل مع المكتبات المشتركة من نوع a.out.

لا يعمل ldd مع بعض برامج a.out القديمة جداً التي بُنيت قبل إضافة دعم ldd إلى إصدارات المصرّف. إذا استُخدم ldd على أحد هذه البرامج، فسيحاول البرنامج العمل بـ argc = 0 وستكون النتائج غير متوقعة.

انظر أيضًا
pldd(1)، sprof(1)، ld.so(8)، ldconfig(8)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة خالد حسني <dr.khaled.hosny@gmail.com> و زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.