Tutorial mini pendek ini muncul sebagai tindak balas terhadap keprihatinan salah seorang pembaca kami, Felipe, yang menulis kepada kami bertanya: «Bagaimana saya dapat mengetahui aplikasi mana yang menggunakan Java?«. Saya rasa tidak ada cara untuk mengetahui itu, tetapi ada cara mudah untuk mengetahui pakej mana (iaitu aplikasi mana) yang disenaraikan di repositori bergantung pada pakej JAVA. Kaedah yang sama dapat digunakan untuk pakej lain, misalnya untuk mengetahui aplikasi mana yang bergantung MONO. |
Yang paling biasa adalah ingin mengetahui pakej lain yang mesti dipasang agar pakej X berfungsi dengan baik. Pakej yang diperlukan dipanggil dependensi dan dapat dijumpai seperti ini:
apt-cache bergantung pada pakej saya
Anda juga boleh pergi ke Synaptic, cari pakej, lakukan klik kanan padanya> Properties> Dependencies.
Walau bagaimanapun, objektif siaran ini adalah untuk mengetahui dengan tepat sebaliknya: pakej mana yang mempunyai pakej X sebagai pergantungan. Dengan kata lain, dalam hal ini kita tahu pakej "ibu" dan kita ingin tahu apa pakej lain yang memerlukan pakej "ibu" ini dipasang untuk berfungsi.
Mari kita beralih kepada contoh untuk memahami perkara ini dengan lebih baik. Mari lihat bagaimana mengesan pakej yang bergantung pada pakej openjdk-6-jre. Dengan kata lain, bagaimana mengesan aplikasi yang disenaraikan di repositori yang bergantung pada JAVA.
Saya membuka terminal dan menulis:
apt-cache bergantung kepada openjdk-6-jre
Senarai pakej yang panjang akan muncul, termasuk OpenOffice, FreeMind, OpenCol, dll.
Bagaimana untuk mencari pakej "ibu" yang betul?
OK, sejauh ini sangat mudah, tetapi bagaimana saya mengetahui apakah pakej "ibu" berdasarkan yang harus saya cari? Ini memerlukan kepakaran dan analisis terlebih dahulu.
Andaikan saya ingin mengetahui semua aplikasi berasaskan MONO. Dalam kes itu, apa yang saya lakukan adalah mencari kebergantungan aplikasi (GBrainy) yang saya tahu menggunakan MONO dan, berdasarkan itu, mengesan pakej "ibu" dan mencari pergantungan terbalik. Uff, nampaknya sukar tetapi tidak masuk akal.
Saya membuka terminal dan menulis:
apt-cache bergantung kepada otak
Hasilnya adalah:
Bergantung: masa mono-runtime
Bergantung: libc6
Bergantung: libc6.1
Bergantung: libc0.1
Bergantung: libglib2.0-cil
Bergantung: libgtk2.0-0
Bergantung: libgtk2.0-cil
Bergantung: liblaunchpad-integrasi1.0-cil
Bergantung: libmono-addins-gui0.2-cil
Bergantung: libmono-addins0.2-cil
Bergantung: libmono-cairo2.0-cil
Bergantung: libmono-corlib2.0-cil
Bergantung: libmono-posix2.0-cil
Bergantung: libmono-system2.0-cil
Bergantung: librsvg2-2
Bergantung: mono-csharp-shell
Sepertinya waktu mono-runtime boleh menjadi calon yang baik, jadi saya memutuskan untuk mencari semua pakej yang bergantung pada waktu mono-runtime:
apt-cache bergantung pada masa mono-run
Voila! Semua pakej yang menggunakan MONO muncul.
Untuk melihat senarai lengkap semua pakej yang bergantung pada beberapa pakej MONO, kami mungkin menulis:
apt-cache bergantung kepada mono *
Terima kasih kerana menjawab Pablo, dan terima kasih untuk siaran 🙂
Pablo awak idola saya!
Pos yang sangat baik.
Hebat! Terima kasih atas data!
Bagi kita yang menggunakan agihan kasar ………… jenaka
bagi mereka yang menggunakan pengurus pakej berasaskan RPM arahan ini digunakan
pakej rpm -qR
Contoh:
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