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 *
Děkujeme za odpověď Pablovi a díky za příspěvek 🙂
Pablo, ty jsi můj idol!
Výborný příspěvek.
Skvělý! Díky za data!
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