Как да разберете кои приложения зависят от X пакета

Този кратък мини урок се появява като отговор на загрижеността на един от нашите читатели, Фелипе, който ни писа с молба: «Как мога да разбера кои приложения използват Java?«. Е, не мисля, че има начин да се знае това, но има прост начин да се знае кои пакети (т.е. кои приложения), изброени в хранилищата, зависят от JAVA пакетите. Същият метод може да се използва за всеки друг пакет, например за да се установи от кои приложения зависи MONO.


Най-често срещаното е желанието да разберете какви други пакети трябва да бъдат инсталирани, за да може пакет X да работи добре. Тези необходими пакети се наричат ​​зависимости и могат да бъдат открити по следния начин:

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

Можете също да отидете в Synaptic, да намерите пакета, да го направите щракнете с десния бутон върху него> Свойства> Зависимости.

Целта на този пост обаче е да установи точно обратното: кои пакети имат X пакет като зависимост. С други думи, в този случай ние познаваме пакета "майка" и искаме да знаем какви други пакети изискват този пакет "майка" да бъде инсталиран, за да работи.

Нека да преминем към примера, за да разберем по-добре въпроса. Нека да видим как да открием пакети, които зависят от пакета 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-интеграция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
  Зависи: моно-csharp-shell

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

apt-cache rdepends моно-време на изпълнение

Voila! Появяват се всички пакети, които използват 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
    / BIN / ш
    / BIN / ш
    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