Jak zjistit, které aplikace závisí na balíčku X.

Tento krátký mini-tutoriál se jeví jako odpověď na obavy jednoho z našich čtenářů, Felipeho, kteří nám napsali s dotazem: «Jak mohu zjistit, které aplikace používají Javu?«. Nemyslím si, že existuje způsob, jak to poznat, ale existuje jednoduchý způsob, jak to poznat které balíčky (tj. které aplikace) uvedené v úložištích závisí na balíčcích JAVA. Stejnou metodu lze použít pro jakýkoli jiný balíček, například pro zjištění, na kterých aplikacích závisí MONO.


Nejběžnější je chtít zjistit, jaké další balíčky musí být nainstalovány, aby balíček X fungoval dobře. Tyto požadované balíčky se nazývají závislosti a lze je zjistit takto:

apt-cache závisí na mém balíčku 

Můžete také přejít na Synaptic, najít balíček, udělat klikněte na něj pravým tlačítkem myši> Vlastnosti> Závislosti.

Cílem tohoto příspěvku je však zjistit přesně naopak: které balíčky mají balíček X jako závislosti. Jinými slovy, v tomto případě známe balíček „matka“ a chceme vědět, jaké další balíčky vyžadují, aby byl tento balíček „matka“ nainstalován.

Pojďme k příkladu, abychom věci lépe porozuměli. Podívejme se, jak detekovat balíčky, které závisí na balíčku openjdk-6-jre. Jinými slovy, jak zjistit ty aplikace uvedené v úložištích, které jsou závislé na JAVA.

Otevřel jsem terminál a napsal:

apt-cache r závisí na openjdk-6-jre 

Zobrazí se dlouhý seznam balíčků, včetně OpenOffice, FreeMind, OpenCol atd.

Jak zjistit správný balíček „matka“?

Dobře, zatím je to snadné, ale jak zjistím, jaký je balíček „matka“, podle kterého bych měl hledat? To vyžaduje určitou odbornost a předchozí analýzu.

Předpokládám, že chci znát všechny aplikace založené na MONO. V takovém případě jsem hledal závislosti aplikace (GBrainy), o které vím, že používá MONO, a na základě toho detekoval balíček „matka“ a hledal inverzní závislosti. Uff, zdá se to obtížné, ale je to nesmysl.

Otevřel jsem terminál a napsal:

apt-cache závisí na gbrainy

Výsledky jsou tyto:

  Závisí: mono-runtime
 | Závisí: libc6
 | Závisí: libc6.1
  Závisí: libc0.1
  Závisí: libglib2.0-cil
  Závisí: libgtk2.0-0
  Závisí: libgtk2.0-cil
  Závisí: liblaunchpad-integration1.0-cil
  Závisí: libmono-addins-gui0.2-cil
  Závisí: libmono-addins0.2-cil
  Závisí: libmono-cairo2.0-cil
  Závisí: libmono-corlib2.0-cil
  Závisí: libmono-posix2.0-cil
  Závisí: libmono-system2.0-cil
  Závisí: librsvg2-2
  Závisí: mono-csharp-shell

Zdálo se mi, že mono-runtime může být dobrým kandidátem, tak jsem se rozhodl vyhledat všechny balíčky, které závisely na mono-runtime:

apt-cache závisí na mono-runtime

Voila! Zobrazí se všechny balíčky, které používají MONO.

Chcete-li zobrazit úplný seznam všech balíků, které závisí na nějakém balíčku MONO, mohli jsme napsat:

apt-cache rdepends mono *
Poznámka: Tato metoda funguje pouze pro ty aplikace, které jsou uvedeny v úložištích APT.
Díky Feli!

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Philip Becerra řekl

    Děkujeme za odpověď Pablovi a díky za příspěvek 🙂

  2.   Saito Mordraw řekl

    Pablo, ty jsi můj idol!

    Výborný příspěvek.

  3.   Pojďme použít Linux řekl

    Skvělý! Díky za data!

  4.   lstivý řekl

    Pro ty z nás, kteří používají hrubé rozdělení ………… vtip

    pro ty, kteří používají správce balíčků založených na RPM, se používá tento příkaz

    balíčky rpm -qR

    příklad:

    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