Как узнать, какие приложения зависят от пакета X

Это короткое мини-руководство выглядит как ответ на озабоченность одного из наших читателей, Фелипе, который нам написал с просьбой: «Как я могу узнать, какие приложения используют Java?«. Что ж, я не думаю, что есть способ узнать это, но есть простой способ узнать какие пакеты (то есть какие приложения), перечисленные в репозиториях, зависят от пакетов JAVA. Тот же метод можно использовать для любого другого пакета, например, чтобы узнать, какие приложения зависят от MONO.


Чаще всего нужно выяснить, какие еще пакеты необходимо установить, чтобы пакет X работал нормально. Эти необходимые пакеты называются зависимостями и могут быть найдены следующим образом:

apt-cache зависит от mypackage 

Вы также можете зайти в Synaptic, найти пакет, сделать щелкните его правой кнопкой мыши> Свойства> Зависимости.

Однако цель этого поста - выяснить обратное: какие пакеты имеют X package в качестве зависимости. Другими словами, в этом случае мы знаем «материнский» пакет и хотим знать, какие другие пакеты требуют, чтобы этот «материнский» пакет был установлен для работы.

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

Я открыл терминал и написал:

apt-cache зависит от 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-integration1.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 rdepends моно-среда выполнения

Вуаля! Появятся все пакеты, в которых используется МОНО.

Чтобы увидеть полный список всех пакетов, зависящих от какого-либо пакета MONO, мы могли бы написать:

apt-cache rdepends моно *
Примечание: этот метод работает только для тех приложений, которые перечислены в репозиториях 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 (PayloadIsLzma) <= 4.4.6-1