Ez a rövid mini-oktatóanyag úgy jelenik meg válasz egyik olvasónk, Felipe aggodalmára, aki megkérdezte tőlünk: «Honnan tudhatom, hogy mely alkalmazások használják a Java-t?«. Nos, nem hinném, hogy ezt meg lehet tudni, de egy egyszerű módja van hogy az adattárakban felsorolt csomagok (vagyis melyik alkalmazások) függenek a JAVA csomagoktól. Ugyanez a módszer bármely más csomaghoz használható, például annak kiderítésére, hogy mely alkalmazások függenek MONO. |
A leggyakoribb az a kérdés, hogy milyen egyéb csomagokat kell telepíteni ahhoz, hogy az X csomag jól működjön. Ezeket a szükséges csomagokat függőségeknek nevezzük, és így megtudhatjuk őket:
Az apt-cache a csomagomtól függ
Mehet a Synaptic oldalra is, megkeresheti a csomagot, megteheti kattintson jobb gombbal, majd a Tulajdonságok> Függőségek elemre.
Ennek a bejegyzésnek az a célja, hogy pontosan megfordítsa a fordítottat: melyik csomagok függősége az X csomag. Más szavakkal, ebben az esetben ismerjük az "anya" csomagot, és szeretnénk tudni, hogy milyen más csomagok igénylik ennek az "anya" csomagnak a működéséhez való telepítését.
Térjünk át a példára, hogy jobban megértsük az ügyet. Nézzük meg, hogyan lehet felismerni az openjdk-6-jre csomagtól függő csomagokat. Más szavakkal, hogyan lehet észlelni a tárolókban felsorolt alkalmazásokat, amelyek a JAVA-tól függenek.
Megnyitottam egy terminált, és ezt írtam:
Az apt-cache rdepdends az openjdk-6-jre
A csomagok hosszú listája jelenik meg, beleértve az OpenOffice, a FreeMind, az OpenCol stb.
Hogyan lehet megtalálni a megfelelő "anya" csomagot?
Rendben, eddig ilyen egyszerű, de hogyan tudhatom meg, mi az az "anya" csomag, amely alapján keresnem kéne? Nos, ehhez némi szakértelemre és előzetes elemzésre van szükség.
Tegyük fel, hogy az összes MONO alapú alkalmazást szeretném tudni. Ebben az esetben azt csináltam, hogy egy alkalmazás (GBrainy) függőségeit kerestem meg, amelyről tudom, hogy a MONO-t használja, és ennek alapján észlelte az "anya" csomagot, és megkereste az inverz függőségeket. Uff, nehéznek tűnik, de ostobaság
Megnyitottam egy terminált, és ezt írtam:
Az apt-cache gbrainytől függ
Az eredmények a következők:
Attól függ: mono-futásidő
| Attól függ: libc6
| Attól függ: libc6.1
Attól függ: libc0.1
Attól függ: libglib2.0-cil
Attól függ: libgtk2.0-0
Attól függ: libgtk2.0-cil
Attól függ: liblaunchpad-integráció1.0-cil
Attól függ: libmono-addins-gui0.2-cil
Attól függ: libmono-addins 0.2-cil
Attól függ: libmono-cairo2.0-cil
Attól függ: libmono-corlib2.0-cil
Attól függ: libmono-posix2.0-cil
Attól függ: libmono-system2.0-cil
Attól függ: librsvg2-2
Attól függ: mono-csharp-shell
Számomra úgy tűnt, hogy a mono-runtime jó jelölt lehet, ezért úgy döntöttem, hogy megkeresem az összes csomagot, amely a mono -untime-től függ:
Az apt-cache rdepo a mono-futástól függ
Voálá! Minden olyan csomag megjelenik, amely MONO-t használ.
A MONO csomagtól függő összes csomag teljes listájának megtekintéséhez írhatnánk:
apt-cache rdepoes mono *
Köszönöm, hogy válaszoltál Pablo-nak, és köszönöm a bejegyzést 🙂
Pablo te vagy a bálványom!
Kiváló poszt.
Nagy! Köszönöm az adatokat!
Nekünk, akik bruttó elosztást használunk ... vicc
RPM alapú csomagkezelőket használók számára ezt a parancsot használják
rpm -qR csomagok
Példa:
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