Ovaj kratki mini tutorial nastaje kao odgovor na zabrinutost jednog od naših čitatelja, Felipea, koji nam je napisao pitajući: «Kako mogu znati koji programi koriste Javu?«. Pa, mislim da ne postoji način da se to sazna, ali postoji jednostavan način da se to sazna koji paketi (odnosno koje aplikacije) navedeni u spremištima ovise o JAVA paketima. Ista se metoda može koristiti za bilo koji drugi paket, na primjer da se sazna o kojim aplikacijama ovisi MONO. |
Najčešće je željeti saznati koji drugi paketi moraju biti instalirani da bi paket X mogao dobro funkcionirati. Ti se potrebni paketi nazivaju ovisnostima i mogu se saznati ovako:
apt-cache ovisi o mom paketu
Također možete otići u Synaptic, pronaći paket, učiniti desni klik na njega> Svojstva> Ovisnosti.
Međutim, cilj ovog posta je otkriti upravo obrnuto: koji paketi imaju X paket kao ovisnost. Drugim riječima, u ovom slučaju poznajemo paket "majka" i želimo znati koji drugi paketi zahtijevaju da ovaj paket "majka" bude instaliran da radi.
Prijeđimo na primjer kako bismo bolje razumjeli stvar. Pogledajmo kako otkriti pakete koji ovise o paketu openjdk-6-jre. Drugim riječima, kako otkriti one programe koji su navedeni u spremištima, a koji ovise o JAVA-i.
Otvorio sam terminal i napisao:
apt-predmemorija rdepends openjdk-6-jre
Pojavit će se dugačak popis paketa, uključujući OpenOffice, FreeMind, OpenCol itd.
Kako otkriti ispravan "majčin" paket?
U redu, zasad je tako lako, ali kako da saznam što je paket "majka" na temelju kojeg bih trebao pretraživati? Pa, ovo zahtijeva određenu stručnost i prethodnu analizu.
Pretpostavimo da želim znati sve aplikacije temeljene na MONO-u. U tom sam slučaju potražio ovisnosti aplikacije (GBrainy) za koju znam da koristi MONO i na temelju toga otkrio "matični" paket i tražio obrnute ovisnosti. Uff, čini se teško, ali to je glupost.
Otvorio sam terminal i napisao:
apt-cache ovisi o gbrainy
Rezultati su sljedeći:
Ovisi: mono-runtime
| Ovisi: libc6
| Ovisi: libc6.1
Ovisi: libc0.1
Ovisi: libglib2.0-cil
Ovisi: libgtk2.0-0
Ovisi: libgtk2.0-cil
Ovisi: liblaunchpad-integracija1.0-cil
Ovisi: libmono-addins-gui0.2-cil
Ovisi: libmono-dodaci0.2-cil
Ovisi: libmono-cairo2.0-cil
Ovisi: libmono-corlib2.0-cil
Ovisi: libmono-posix2.0-cil
Ovisi: libmono-system2.0-cil
Ovisi: librsvg2-2
Ovisi: mono-csharp-shell
Činilo mi se da bi mono-runtime mogao biti dobar kandidat, pa sam odlučio potražiti sve pakete koji su ovisili o mono-runtime-u:
apt-cache crveno-jednokratno
Voila! Prikazuju se svi paketi koji koriste MONO.
Da bismo vidjeli cjelovit popis svih paketa koji ovise o nekom MONO paketu, mogli smo napisati:
apt-predmemorija crveno se crpi *
Hvala na odgovoru Pablu i hvala na postu 🙂
Pablo ti si moj idol!
Izvrsna pošta.
Sjajno! Hvala na podacima!
Za nas koji koristimo bruto raspodjelu ………… šala
za one koji koriste RPM-bazirane upravitelje paketa koristi se ova naredba
rpm -qR paketi
primjer:
linux @ dhcppc3: ~> rpm -qR xmms
/ Bin / sh
/ Bin / sh
rpmlib (PayloadFilesHavePrefix) <= 4.0-1
rpmlib (CompressedFileNames) <= 3.0.4-1
libICE.tako.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.tako.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 (Korisno opterećenjeIsLzma) <= 4.4.6-1