Ta kratka mini-vadnica je nastala kot odgovor na zaskrbljenost enega od naših bralcev, Felipeja, ki nam je vprašal: «Kako vem, katere aplikacije uporabljajo Javo?«. No, mislim, da tega ni mogoče vedeti, obstaja pa preprost način kateri paketi (torej kateri programi), navedeni v skladiščih, so odvisni od paketov JAVA. Isto metodo lahko uporabimo za kateri koli drug paket, na primer za ugotavljanje, od katerih aplikacij je odvisno MONO. |
Najpogostejša je želja po ugotovitvi, kateri drugi paketi morajo biti nameščeni, da bo paket X dobro deloval. Ti zahtevani paketi se imenujejo odvisnosti in jih je mogoče najti tako:
apt-cache je odvisen od mojega paketa
Lahko tudi obiščete Synaptic, poiščete paket in to storite z desno miškino tipko kliknite> Lastnosti> Odvisnosti.
Vendar je cilj tega prispevka natančno ugotoviti obratno: kateri paketi imajo paket X kot odvisnost. Z drugimi besedami, v tem primeru poznamo paket "mati" in želimo vedeti, kateri drugi paketi zahtevajo, da ta paket "mati" deluje, da deluje.
Pojdimo na primer, da bomo zadevo bolje razumeli. Poglejmo, kako zaznamo pakete, ki so odvisni od paketa openjdk-6-jre. Se pravi, kako zaznati tiste programe, ki so navedeni v skladiščih, ki so odvisni od JAVA.
Odprl sem terminal in napisal:
apt-cache je odvisno od openjdk-6-jre
Pojavil se bo dolg seznam paketov, vključno z OpenOffice, FreeMind, OpenCol itd.
Kako najti pravi "materinski" paket?
V redu, zaenkrat tako enostavno, ampak kako naj izvem, kaj je "matični" paket, na podlagi katerega naj iščem? No, to zahteva nekaj strokovnega znanja in predhodne analize.
Recimo, da želim poznati vse aplikacije, ki temeljijo na MONO. V tem primeru sem iskal odvisnosti aplikacije (GBrainy), za katero vem, da uporablja MONO, in na podlagi tega zaznal "matični" paket in poiskal inverzne odvisnosti. Uff, zdi se težko, vendar je nesmisel.
Odprl sem terminal in napisal:
apt-cache odvisen od gbrainy
Rezultati so naslednji:
Odvisno: mono-runtime
| Odvisno: libc6
| Odvisno: libc6.1
Odvisno: libc0.1
Odvisno: libglib2.0-cil
Odvisno: libgtk2.0-0
Odvisno: libgtk2.0-cil
Odvisno: liblaunchpad-integracija1.0-cil
Odvisno: libmono-addins-gui0.2-cil
Odvisno: libmono-dodatki0.2-cil
Odvisno: libmono-cairo2.0-cil
Odvisno: libmono-corlib2.0-cil
Odvisno: libmono-posix2.0-cil
Odvisno: libmono-system2.0-cil
Odvisno: librsvg2-2
Odvisno: mono-csharp-shell
Zdelo se mi je, da bi lahko bil mono-runtime dober kandidat, zato sem se odločil, da poiščem vse pakete, ki so odvisni od mono-runtime:
apt-predpomnilnik rdeča, zažene se mono-runtime
Voila! Prikažejo se vsi paketi, ki uporabljajo MONO.
Če si želite ogledati popoln seznam vseh paketov, ki so odvisni od nekega MONO paketa, bi lahko napisali:
apt-cache rdepends mono *
Hvala za odgovor Pablo in hvala za prispevek 🙂
Pablo, ti si moj idol!
Odlična objava.
Super! Hvala za podatke!
Za tiste, ki uporabljamo bruto distribucije ………… šala
za tiste, ki uporabljajo upravljalnike paketov na osnovi RPM, se uporablja ta ukaz
rpm -qR paketi
Primer:
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