Як дізнатись, які програми залежать від пакета X

Цей короткий міні-підручник виглядає як відповідь на занепокоєння одного з наших читачів, Феліпе, який написав нам з проханням: «Як я можу дізнатись, які програми використовують Java?«. Ну, я не думаю, що існує спосіб дізнатися це, але є простий спосіб дізнатися які пакети (тобто, які програми), перелічені у сховищах, залежать від пакетів JAVA. Той самий метод можна використовувати для будь-якого іншого пакета, наприклад, щоб дізнатись, від яких програм залежить MONO.


Найпоширенішим є бажання з’ясувати, які інші пакети повинні бути встановлені, щоб пакет X працював належним чином. Ці необхідні пакети називаються залежностями, і їх можна дізнатись так:

apt-cache залежить від мого пакета 

Ви також можете зайти в Synaptic, знайти пакет, зробити клацніть правою кнопкою миші на ньому> Властивості> Залежності.

Однак метою цього допису є з’ясувати саме зворотне: які пакунки мають X-пакет як залежність. Іншими словами, у цьому випадку ми знаємо пакет "мати" і хочемо знати, які інші пакети вимагають встановлення цього пакета "мати" для роботи.

Перейдемо до прикладу, щоб краще зрозуміти справу. Давайте подивимося, як виявити пакети, які залежать від пакета openjdk-6-jre. Тобто, як виявити ті програми, перелічені у сховищах, які залежать від JAVA.

Я відкрив термінал і написав:

apt-cache r залежить від openjdk-6-jre 

З'явиться довгий список пакетів, включаючи OpenOffice, FreeMind, OpenCol тощо.

Як знайти правильний "материнський" пакет?

Гаразд, поки що все просто, але як мені дізнатися, що таке "материнський" пакет, на основі якого я повинен шукати? Що ж, це вимагає певної експертизи та попереднього аналізу.

Припустимо, я хочу знати всі програми на основі MONO. У цьому випадку я шукав залежності програми (GBrainy), яка, на мою думку, використовує MONO, і, виходячи з цього, виявляв "материнський" пакет та шукав зворотні залежності. Уфф, здається складно, але це нонсенс.

Я відкрив термінал і написав:

apt-cache залежить від gbrainy

Результати такі:

  Залежить: моно-час виконання
 | Залежить: libc6
 | Залежить: libc6.1
  Залежить: libc0.1
  Залежить: libglib2.0-cil
  Залежить: libgtk2.0-0
  Залежить: libgtk2.0-cil
  Залежить: liblaunchpad-інтеграція1.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
  Залежить: mono-csharp-shell

Мені здалося, що моно-час виконання може бути хорошим кандидатом, тому я вирішив шукати всі пакети, які залежали від моно-часу виконання:

apt-cache rdeзалежить моно-час виконання

Вуаля! З'являються всі пакети, що використовують MONO.

Щоб побачити повний список усіх пакетів, які залежать від якогось пакету MONO, ми могли б написати:

apt-cache rdepends mono *
Примітка: цей метод працює лише для тих програм, які перелічені у сховищах APT.
Дякую Фелі!

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Феліпе Бесерра - сказав він

    Дякую за відповідь Пабло, і дякую за допис 🙂

  2.   Сайто Мордрауг - сказав він

    Пабло, ти мій кумир!

    Відмінний пост.

  3.   Давайте використовувати Linux - сказав він

    Чудово! Дякуємо за дані!

  4.   крафті - сказав він

    Для тих з нас, хто використовує валові розподіли ………… жарт

    для тих, хто використовує менеджери пакетів на основі RPM, використовується ця команда

    rpm -qR пакети

    Приклад:

    linux @ 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 (корисне навантаженняIsLzma) <= 4.4.6-1