Denne korte miniopplæringen dukker opp som svar på bekymringen til en av våre lesere, Felipe, som skrev til oss og spurte: «Hvordan kan jeg vite hvilke applikasjoner som bruker Java?«. Vel, jeg tror ikke det er en måte å vite det, men det er en enkel måte å vite hvilke pakker (det vil si hvilke applikasjoner) som er oppført i depotene, avhenger av JAVA-pakkene. Den samme metoden kan brukes for alle andre pakker, for eksempel for å finne ut hvilke applikasjoner som er avhengige av MONO. |
Det vanligste er å finne ut hvilke andre pakker som må installeres for at pakke X skal fungere bra. De nødvendige pakkene kalles avhengigheter og kan bli funnet ut slik:
apt-cache avhenger av pakken min
Du kan også gå til Synaptic, finne pakken, gjøre høyreklikk på den> Egenskaper> Avhengigheter.
Målet med dette innlegget er imidlertid å finne ut omvendt: hvilke pakker som har X-pakke som avhengighet. Med andre ord, i dette tilfellet kjenner vi "mor" -pakken, og vi vil vite hva andre pakker krever at denne "mor" -pakken installeres for å fungere.
La oss gå videre til eksemplet for bedre å forstå saken. La oss se hvordan vi oppdager pakker som er avhengige av openjdk-6-jre-pakken. Det vil si hvordan du oppdager de applikasjonene som er oppført i arkivene, som er avhengig av JAVA.
Jeg åpnet en terminal og skrev:
apt-cache avhenger openjdk-6-jre
En lang liste med pakker vises, inkludert OpenOffice, FreeMind, OpenCol, etc.
Hvordan finner du riktig "mor" -pakke?
OK, så langt så enkelt, men hvordan finner jeg ut hva som er "mor" -pakken som jeg bør søke etter? Vel, dette krever litt ekspertise og forhåndsanalyse.
Anta at jeg vil vite alle MONO-baserte applikasjoner. I så fall var det jeg lette etter avhengighetene til et program (GBrainy) som jeg vet bruker MONO og, basert på det, oppdage "mor" -pakken og se etter de omvendte avhengighetene. Uff, det virker vanskelig, men det er tull.
Jeg åpnet en terminal og skrev:
apt-cache avhenger av korn
Resultatene er disse:
Avhenger av: mono-runtime
Avhenger: libc6
Avhenger: libc6.1
Avhenger: libc0.1
Avhenger: libglib2.0-cil
Avhenger: libgtk2.0-0
Avhenger: libgtk2.0-cil
Avhenger: liblaunchpad-integration1.0-cil
Avhenger: libmono-addins-gui0.2-cil
Avhenger: libmono-addins0.2-cil
Avhenger: libmono-cairo2.0-cil
Avhenger: libmono-corlib2.0-cil
Avhenger: libmono-posix2.0-cil
Avhenger: libmono-system2.0-cil
Avhenger: librsvg2-2
Avhenger: mono-csharp-shell
Det virket for meg at mono-runtime kunne være en god kandidat, så jeg bestemte meg for å søke etter alle pakker som var avhengig av mono-runtime:
apt-cache avhenger mono-runtime
Voila! Alle pakker som bruker MONO vises.
For å se en komplett liste over alle pakker som avhenger av noen MONO-pakker, kunne vi ha skrevet:
apt-cache avhenger mono *
Takk for at du svarte Pablo, og takk for innlegget 🙂
Pablo du er idolet mitt!
Utmerket innlegg.
Flott! Takk for dataene!
For de av oss som bruker grove distribusjoner ………… vits
for de som bruker RPM-baserte pakkeforvaltere, brukes denne kommandoen
rpm -qR-pakker
Eksempel:
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