كيف تعرف التطبيقات التي تعتمد على حزمة X

يظهر هذا البرنامج التعليمي القصير باسم استجابة لقلق أحد قرائنا ، فيليبيالذي كتب إلينا يسأل: «كيف يمكنني معرفة التطبيقات التي تستخدم Java؟«. حسنًا ، لا أعتقد أن هناك طريقة لمعرفة ذلك ، ولكن هناك طريقة بسيطة لمعرفة ذلك تعتمد الحزم (أي التطبيقات) المدرجة في المستودعات على حزم JAVA. يمكن استخدام نفس الطريقة مع أي حزمة أخرى ، على سبيل المثال لمعرفة التطبيقات التي تعتمد عليها MONO.


الأكثر شيوعًا هو الرغبة في معرفة الحزم الأخرى التي يجب تثبيتها حتى تعمل الحزمة X بشكل جيد. تسمى هذه الحزم المطلوبة التبعيات ويمكن العثور عليها على النحو التالي:

يعتمد apt-cache على mypackage 

يمكنك أيضًا الانتقال إلى Synaptic ، والعثور على الحزمة ، والقيام بذلك انقر بزر الماوس الأيمن فوقه> خصائص> التبعيات.

ومع ذلك ، فإن الهدف من هذا المنشور هو اكتشاف العكس تمامًا: أي الحزم تحتوي على حزمة X باعتبارها تبعية. بمعنى آخر ، في هذه الحالة نعرف الحزمة "الأم" ونريد أن نعرف الحزم الأخرى التي تتطلب تثبيت الحزمة "الأم" للعمل.

دعنا ننتقل إلى المثال لفهم الأمر بشكل أفضل. دعونا نرى كيفية اكتشاف الحزم التي تعتمد على حزمة openjdk-6-jre. أي ، كيفية اكتشاف تلك التطبيقات المدرجة في المستودعات ، والتي تعتمد على JAVA.

فتحت المحطة وكتبت:

apt-cache rdepends openjdk-6-jre 

ستظهر قائمة طويلة من الحزم ، بما في ذلك OpenOffice و FreeMind و OpenCol وما إلى ذلك.

كيف تكتشف حزمة "الأم" الصحيحة؟

حسنًا ، من السهل جدًا حتى الآن ، ولكن كيف يمكنني معرفة الحزمة "الأم" التي يجب أن أبحث عنها؟ حسنًا ، هذا يتطلب بعض الخبرة والتحليل المسبق.

لنفترض أنني أريد معرفة جميع التطبيقات القائمة على MONO. في هذه الحالة ، ما فعلته هو البحث عن تبعيات تطبيق (GBrainy) أعرف أنه يستخدم MONO ، وبناءً على ذلك ، اكتشف الحزمة "الأم" وابحث عن التبعيات العكسية. Uff ، يبدو الأمر صعبًا ولكنه هراء.

فتحت المحطة وكتبت:

يعتمد apt-cache على gbrainy

النتائج هي كالتالي:

  يعتمد على: وقت تشغيل أحادي
 | يعتمد على: libc6
 | يعتمد على: libc6.1
  يعتمد على: libc0.1
  يعتمد على: libglib2.0-cil
  يعتمد على: libgtk2.0-0
  يعتمد على: libgtk2.0-cil
  يعتمد على: liblaunchpad-insert1.0-cil
  يعتمد على: libmono-addins-gui0.2-cil
  يعتمد على: libmono-addins0.2-cil
  يعتمد على: libmono-cairo2.0-cil
  يعتمد على: libmono-corlib2.0-cil
  يعتمد على: libmono-posix2.0-cil
  يعتمد على: libmono-system2.0-cil
  يعتمد على: librsvg2-2
  يعتمد على: أحادي csharp-shell

بدا لي أن وقت التشغيل الأحادي قد يكون مرشحًا جيدًا ، لذلك قررت البحث عن جميع الحزم التي تعتمد على وقت التشغيل الأحادي:

apt-cache rdepends أحادية التشغيل

هاهو! تظهر جميع الحزم التي تستخدم MONO.

للاطلاع على قائمة كاملة بجميع الحزم التي تعتمد على بعض حزم MONO ، كان من الممكن أن نكتب:

apt-cache rdepends mono *
ملاحظة: تعمل هذه الطريقة فقط مع تلك التطبيقات المدرجة في مستودعات APT.
شكرا فيلي!

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   فيليبي بيسيرا قال

    شكرا على الرد على بابلو ، وشكرا على المنشور 🙂

  2.   سايتو موردراغ قال

    بابلو أنت مثلي الأعلى!

    منشور ممتاز.

  3.   لنستخدم لينكس قال

    عظيم! شكرا على البيانات!

  4.   كرافتي قال

    لأولئك منا الذين يستخدمون التوزيعات الإجمالية ... نكتة

    بالنسبة لأولئك الذين يستخدمون مديري الحزم المستندة إلى RPM ، يتم استخدام هذا الأمر

    حزم rpm -qR

    على سبيل المثال:

    لينكس @ dhcppc3: ~> rpm -qR xmms
    / بن / ش
    / بن / ش
    rpmlib (PayloadFilesHavePrefix) <= 4.0-1
    rpmlib (CompressedFileNames) <= 3.0.4-1
    libICE.so.6
    libSM.so.6
    libX11.so.6
    libXxf86vm.so.1
    libc.so.6
    libc.so.6 (GLIBC_2.0)
    libc.so.6 (GLIBC_2.1)
    libc.so.6 (GLIBC_2.3)
    libc.so.6 (GLIBC_2.3.4)
    libc.so.6 (GLIBC_2.4)
    libc.so.6 (GLIBC_2.7)
    libdl.so.2
    libdl.so.2 (GLIBC_2.0)
    libdl.so.2 (GLIBC_2.1)
    libgdk-1.2.so.0
    libglib-1.2.so.0
    libgthread-1.2.so.0
    libgtk-1.2.so.0
    libpthread.so.0
    libpthread.so.0 (GLIBC_2.0)
    libpthread.so.0 (GLIBC_2.1)
    libpthread.so.0 (GLIBC_2.3.2)
    libxmms.so.1
    rpmlib (PayloadIsLzma) <= 4.4.6-1