Bu kısa mini eğitim şu şekilde ortaya çıkıyor: okuyucularımızdan biri olan Felipe'nin endişesine yanıt, bize yazdı: «Hangi uygulamaların Java kullandığını nasıl bilebilirim?«. Bunu bilmenin bir yolu olduğunu sanmıyorum ama bilmenin basit bir yolu var Depolarda listelenen hangi paketler (yani, hangi uygulamalar) JAVA paketlerine bağlıdır. Aynı yöntem başka herhangi bir paket için de kullanılabilir, örneğin hangi uygulamaların bağlı olduğunu bulmak için MONO. |
En yaygın olanı, X paketinin iyi çalışması için başka hangi paketlerin yüklenmesi gerektiğini bulmaktır. Bu gerekli paketler bağımlılıklar olarak adlandırılır ve şu şekilde bulunabilir:
apt-cache paketime bağlıdır
Ayrıca Synaptic'e gidebilir, paketi bulabilir, sağ tıklayın> Özellikler> Bağımlılıklar.
Bununla birlikte, bu yazının amacı tam tersini bulmaktır: hangi paketlerin bağımlılık olarak X paketine sahip olduğu. Başka bir deyişle, bu durumda "ana" paketi biliyoruz ve bu "ana" paketin çalışması için başka hangi paketlerin kurulmasını gerektirdiğini bilmek istiyoruz.
Konuyu daha iyi anlamak için örneğe geçelim. Openjdk-6-jre paketine bağlı paketlerin nasıl tespit edileceğini görelim. Yani, depolarda listelenen ve JAVA'ya bağlı olan uygulamaların nasıl tespit edileceği.
Bir terminal açtım ve şunu yazdım:
apt-cache rdependjdk-6-jre
OpenOffice, FreeMind, OpenCol vb. Dahil olmak üzere uzun bir paket listesi görünecektir.
Doğru "anne" paketi nasıl bulunur?
Tamam, şimdiye kadar çok kolay, ama aramam gereken "anne" paketinin ne olduğunu nasıl öğrenebilirim? Bu biraz uzmanlık ve önceden analiz gerektirir.
Tüm MONO tabanlı uygulamaları bilmek istediğimi varsayalım. Bu durumda yaptığım şey, MONO kullandığını bildiğim bir uygulamanın (GBrainy) bağımlılıklarını aramak ve buna dayanarak "ana" paketi tespit etmek ve ters bağımlılıkları aramaktı. Uff, zor görünüyor ama saçma.
Bir terminal açtım ve şunu yazdım:
apt-cache gbrainy'ye bağlıdır
Sonuçlar şunlardır:
Bağlıdır: mono çalışma zamanı
| Bağlıdır: libc6
| Bağlıdır: libc6.1
Bağlıdır: libc0.1
Bağlıdır: libglib2.0-cil
Bağlıdır: libgtk2.0-0
Bağlıdır: libgtk2.0-cil
Bağlıdır: liblaunchpad-integration1.0-cil
Bağlıdır: libmono-addins-gui0.2-cil
Bağlıdır: libmono-addins0.2-cil
Bağlıdır: libmono-cairo2.0-cil
Bağlıdır: libmono-corlib2.0-cil
Bağlıdır: libmono-posix2.0-cil
Bağlıdır: libmono-system2.0-cil
Bağlıdır: librsvg2-2
Bağlıdır: mono-csharp-shell
Bana mono çalışma zamanının iyi bir aday olabileceğini düşündüm, bu yüzden mono çalışma zamanına bağlı tüm paketleri aramaya karar verdim:
apt-cache rd, mono çalışma zamanına bağlıdır
Voila! MONO kullanan tüm paketler görünür.
Bazı MONO paketlerine bağlı tüm paketlerin tam bir listesini görmek için şunları yazabilirdik:
apt-cache rd mono *
Pablo'ya cevap verdiğin için teşekkürler, gönderi için teşekkürler 🙂
Pablo, sen benim idolümsün!
Mükemmel gönderi.
Harika! Veriler için teşekkürler!
Brüt dağıtım kullananlarımız için ………… şaka
RPM tabanlı paket yöneticilerini kullananlar için bu komut kullanılır
rpm -qR paketleri
Örnek:
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