Jak się dowiedzieć, które aplikacje zależą od pakietu X.

Ten krótki mini-samouczek pojawia się jako odpowiedź na niepokój jednego z naszych czytelników, Felipe, który napisał do nas z pytaniem: «Skąd mogę wiedzieć, które aplikacje używają języka Java?«. Cóż, nie sądzę, aby można było to wiedzieć, ale jest prosty sposób, aby to wiedzieć które pakiety (czyli które aplikacje) wymienione w repozytoriach zależą od pakietów JAVA. Tej samej metody można użyć w przypadku dowolnego innego pakietu, na przykład w celu sprawdzenia, od których aplikacji zależy MONO.


Najbardziej powszechnym jest chęć dowiedzenia się, jakie inne pakiety muszą być zainstalowane, aby pakiet X działał dobrze. Te wymagane pakiety nazywane są zależnościami i można je znaleźć w następujący sposób:

apt-cache zależy od mojego pakietu 

Możesz także udać się do Synaptic, znaleźć paczkę, zrób kliknij prawym przyciskiem myszy> Właściwości> Zależności.

Jednak celem tego postu jest ustalenie dokładnie odwrotnej sytuacji: które pakiety mają pakiet X jako zależność. Innymi słowy, w tym przypadku znamy pakiet „macierzysty” i chcemy wiedzieć, jakie inne pakiety wymagają, aby ten pakiet „macierzysty” był zainstalowany do działania.

Przejdźmy do przykładu, aby lepiej zrozumieć sprawę. Zobaczmy, jak wykryć pakiety zależne od pakietu openjdk-6-jre. To znaczy, jak wykryć te aplikacje wymienione w repozytoriach, które zależą od JAVA.

Otworzyłem terminal i napisałem:

apt-cache zależy od openjdk-6-jre 

Pojawi się długa lista pakietów, w tym OpenOffice, FreeMind, OpenCol itp.

Jak znaleźć właściwy pakiet „dla matki”?

OK, na razie takie proste, ale jak mam się dowiedzieć, na podstawie którego pakietu „matka” mam szukać? Cóż, wymaga to pewnej wiedzy i wcześniejszej analizy.

Załóżmy, że chcę poznać wszystkie aplikacje oparte na MONO. W tym przypadku poszukałem zależności aplikacji (GBrainy), o której wiem, że używa MONO i na tej podstawie wykryłem pakiet „matka” i poszukałem odwrotnych zależności. Uff, wydaje się trudne, ale to nonsens.

Otworzyłem terminal i napisałem:

apt-cache zależy od gbrainy

Wyniki są następujące:

  Zależy: mono-runtime
 | Zależy: libc6
 | Zależy: libc6.1
  Zależy: libc0.1
  Zależy: libglib2.0-cil
  Zależy: libgtk2.0-0
  Zależy: libgtk2.0-cil
  Zależy: liblaunchpad-integracja1.0-cil
  Zależy: libmono-addins-gui0.2-cil
  Zależy: libmono-addins0.2-cil
  Zależy: libmono-cairo2.0-cil
  Zależy: libmono-corlib2.0-cil
  Zależy: libmono-posix2.0-cil
  Zależy: libmono-system2.0-cil
  Zależy: librsvg2-2
  Zależy: mono-csharp-shell

Wydawało mi się, że mono-runtime może być dobrym kandydatem, więc zdecydowałem się poszukać wszystkich pakietów, które zależą od mono-runtime:

apt-cache zależy od mono-runtime

Voila! Pojawiają się wszystkie pakiety używające MONO.

Aby zobaczyć pełną listę wszystkich pakietów, które zależą od jakiegoś pakietu MONO, moglibyśmy napisać:

apt-cache rdepends mono *
Uwaga: ta metoda działa tylko dla tych aplikacji, które są wymienione w repozytoriach APT.
Dzięki Feli!

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Filip Becerra powiedział

    Dzięki za odpowiedź Pablo i dzięki za wiadomość 🙂

  2.   Saito Mordraw powiedział

    Pablo, jesteś moim idolem!

    Doskonały post.

  3.   Użyjmy Linuksa powiedział

    Świetny! Dzięki za dane!

  4.   podstępny powiedział

    Dla tych z nas, którzy używają podziałów brutto ………… żart

    dla osób używających menedżerów pakietów opartych na RPM to polecenie jest używane

    pakiety rpm -qR

    przykład:

    linux @ dhcppc3: ~> rpm -qR xmms
    / Bin / sh
    / Bin / sh
    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