Tämä lyhyt mini-opetusohjelma ilmestyy nimellä vastaus yhden lukijamme Felipen huoleen, joka kirjoitti meille ja kysyi: «Mistä tiedän, mitkä sovellukset käyttävät Java-ohjelmaa?«. En usko, että on olemassa tapa tietää se, mutta on yksinkertainen tapa tietää mitkä arkistoissa luetellut paketit (eli mitkä sovellukset) riippuvat JAVA-paketeista. Samaa menetelmää voidaan käyttää mihin tahansa muuhun pakettiin, esimerkiksi selvittääksesi, mitkä sovellukset riippuvat MONO. |
Yleisin on halu selvittää, mitkä muut paketit on asennettava, jotta paketti X toimisi hyvin. Näitä vaadittuja paketteja kutsutaan riippuvuuksiksi, ja ne voidaan selvittää näin:
apt-cache riippuu minun paketistani
Voit myös mennä Synapticiin, etsiä paketin, tehdä napsauta sitä hiiren kakkospainikkeella> Ominaisuudet> Riippuvuudet.
Tämän viestin tavoitteena on kuitenkin selvittää tarkalleen päinvastainen: mitkä paketit ovat X-paketteja riippuvuuksina. Toisin sanoen, tässä tapauksessa tunnemme "äiti" -paketin ja haluamme tietää, mitä muut paketit vaativat, että tämä "äiti" -paketti asennetaan toimimaan.
Siirrytään eteenpäin esimerkin ymmärtämiseksi paremmin. Katsotaanpa, kuinka tunnistaa paketit, jotka riippuvat openjdk-6-jre-paketista. Eli kuinka tunnistaa ne arkistoissa luetellut sovellukset, jotka riippuvat JAVA: sta.
Avasin terminaalin ja kirjoitin:
apt-cache rdependends openjdk-6-jre
Näkyviin tulee pitkä luettelo paketeista, kuten OpenOffice, FreeMind, OpenCol jne.
Kuinka löytää oikea "äiti" -paketti?
OK, toistaiseksi niin helppoa, mutta miten saan selville, mikä on "äiti" -paketti, jonka perusteella minun pitäisi etsiä? No, tämä vaatii jonkin verran asiantuntemusta ja ennakkoanalyysiä.
Oletetaan, että haluan tietää kaikki MONO-pohjaiset sovellukset. Tällöin etsin sovelluksen riippuvuuksia (GBrainy), jonka tiedän käyttävän MONO: ta, ja sen perusteella havaitsen "äiti" -paketin ja etsin käänteisiä riippuvuuksia. Uff, se näyttää vaikealta, mutta se on hölynpölyä.
Avasin terminaalin ja kirjoitin:
apt-cache riippuu gbrainy
Tulokset ovat seuraavat:
Riippuu: mono-ajonaika
| Riippuu: libc6
| Riippuu: libc6.1
Riippuu: libc0.1
Riippuu: libglib2.0-cil
Riippuu: libgtk2.0-0
Riippuu: libgtk2.0-cil
Riippuu: liblaunchpad -integraatio1.0-cil
Riippuu: libmono-addins-gui0.2-cil
Riippuu: libmono-addiinit 0.2-cil
Riippuu: libmono-cairo2.0-cil
Riippuu: libmono-corlib2.0-cil
Riippuu: libmono-posix2.0-cil
Riippuu: libmono-system2.0-cil
Riippuu: librsvg2-2
Riippuu: mono-csharp-kuori
Minusta tuntui, että mono-ajonaika voisi olla hyvä ehdokas, joten päätin etsiä kaikki paketit, jotka riippuivat mono-ajonajasta:
apt-cache rdependoi yhden ajon
Voila! Kaikki MONOa käyttävät paketit tulevat näkyviin.
Jos haluat nähdä täydellisen luettelon kaikista paketeista, jotka riippuvat jostakin MONO-paketista, olisimme voineet kirjoittaa:
apt-cache rdepends mono *
Kiitos vastauksesta Pabloon ja kiitos viestistä 🙂
Pablo olet minun idoli!
Erinomainen viesti.
Loistava! Kiitos tiedoista!
Niille meistä, jotka käyttävät bruttojakaumaa… vitsi
RPM-pohjaisia pakettien hallintaohjelmia käyttäville käytetään tätä komentoa
rpm -qR-paketit
esimerkiksi:
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 (hyötykuormaIsLzma) <= 4.4.6-1