Bagaimana mengetahui aplikasi mana yang bergantung pada paket X.

Mini-tutorial singkat ini muncul sebagai menanggapi kepedulian salah satu pembaca kami, Felipe, yang menulis kepada kami menanyakan: «Bagaimana saya tahu aplikasi mana yang menggunakan Java?«. Saya rasa tidak ada cara untuk mengetahuinya, tapi ada cara sederhana untuk mengetahuinya paket mana (yaitu, aplikasi mana) yang terdaftar dalam repositori bergantung pada paket JAVA. Metode yang sama dapat digunakan untuk paket lain, misalnya untuk mengetahui aplikasi mana yang bergantung MONO.


Yang paling umum adalah ingin mengetahui paket lain apa yang harus diinstal agar paket X berfungsi dengan baik. Paket-paket yang dibutuhkan itu disebut dependensi dan dapat ditemukan seperti ini:

apt-cache tergantung paket saya 

Anda juga dapat pergi ke Synaptic, temukan paketnya, lakukan klik kanan padanya> Properties> Dependencies.

Namun, tujuan dari posting ini adalah untuk mengetahui kebalikannya: paket mana yang memiliki paket X sebagai dependensi. Dengan kata lain, dalam hal ini kita tahu paket "mother" dan kita ingin tahu paket lain apa yang mengharuskan paket "mother" ini diinstal agar bisa bekerja.

Mari beralih ke contoh untuk lebih memahami masalah ini. Mari kita lihat cara mendeteksi paket yang bergantung pada paket openjdk-6-jre. Dengan kata lain, cara mendeteksi aplikasi yang terdaftar di repositori, yang bergantung pada JAVA.

Saya membuka terminal dan menulis:

apt-cache rtergantung pada openjdk-6-jre 

Daftar panjang paket akan muncul, termasuk OpenOffice, FreeMind, OpenCol, dll.

Bagaimana menemukan paket "ibu" yang benar?

Oke, sejauh ini sangat mudah, tetapi bagaimana cara mengetahui paket "ibu" yang harus saya cari? Nah, ini membutuhkan keahlian dan analisis sebelumnya.

Misalkan saya ingin mengetahui semua aplikasi berbasis MONO. Dalam hal ini, yang saya lakukan adalah mencari dependensi aplikasi (GBrainy) yang saya tahu menggunakan MONO dan, berdasarkan itu, mendeteksi paket "mother" dan mencari dependensi terbalik. Uff, sepertinya sulit tapi itu tidak masuk akal.

Saya membuka terminal dan menulis:

apt-cache tergantung gbrainy

Hasilnya adalah sebagai berikut:

  Tergantung: mono-runtime
 | Tergantung: libc6
 | Tergantung: libc6.1
  Tergantung: libc0.1
  Tergantung: libglib2.0-cil
  Tergantung: libgtk2.0-0
  Tergantung: libgtk2.0-cil
  Tergantung: liblaunchpad-integration1.0-cil
  Tergantung: libmono-addins-gui0.2-cil
  Tergantung: libmono-addins0.2-cil
  Tergantung: libmono-cairo2.0-cil
  Tergantung: libmono-corlib2.0-cil
  Tergantung: libmono-posix2.0-cil
  Tergantung: libmono-system2.0-cil
  Tergantung: librsvg2-2
  Tergantung: mono-csharp-shell

Bagi saya, mono-runtime bisa menjadi kandidat yang baik, jadi saya memutuskan untuk mencari semua paket yang bergantung pada mono-runtime:

apt-cache r bergantung pada mono-runtime

Voila! Semua paket yang menggunakan MONO muncul.

Untuk melihat daftar lengkap semua paket yang bergantung pada beberapa paket MONO, kami dapat menulis:

apt-cache rdepends mono *
Catatan: metode ini hanya berfungsi untuk aplikasi yang terdaftar di repositori APT.
Terima kasih Feli!

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Philip Becerra dijo

    Terima kasih telah menjawab Pablo, dan terima kasih atas kirimannya 🙂

  2.   Saito Mordraw dijo

    Pablo kamu idola saya!

    Posting yang bagus.

  3.   Mari gunakan Linux dijo

    Bagus! Terima kasih untuk datanya!

  4.   licik dijo

    Bagi kita yang menggunakan distribusi kotor ………… lelucon

    bagi mereka yang menggunakan manajer paket berbasis RPM perintah ini digunakan

    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.jadi.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