Comment savoir quelles applications dépendent du package X

Ce court mini-tutoriel apparaît comme réponse à l'inquiétude de l'un de nos lecteurs, Felipe, qui nous a écrit en demandant: «Comment puis-je savoir quelles applications utilisent Java?«. Eh bien, je ne pense pas qu'il y ait un moyen de le savoir, mais il y a un moyen simple de savoir quels packages (c'est-à-dire quelles applications) répertoriés dans les référentiels dépendent des packages JAVA. La même méthode peut être utilisée pour tout autre package, par exemple pour savoir de quelles applications dépendent MONO.


Le plus courant est de savoir quels autres packages doivent être installés pour que le package X fonctionne correctement. Ces packages requis sont appelés dépendances et peuvent être trouvés comme ceci:

apt-cache dépend de mon paquet 

Vous pouvez également aller sur Synaptic, trouver le package, faire clic droit dessus> Propriétés> Dépendances.

Cependant, l'objectif de ce post est de découvrir précisément l'inverse: quels packages ont X package comme dépendance. En d'autres termes, dans ce cas, nous connaissons le paquet «mère» et nous voulons savoir quels autres paquets nécessitent que ce paquet «mère» soit installé pour fonctionner.

Passons à l'exemple pour mieux comprendre la question. Voyons comment détecter les packages qui dépendent du package openjdk-6-jre. En d'autres termes, comment détecter les applications répertoriées dans les référentiels qui dépendent de JAVA.

J'ai ouvert un terminal et écrit:

apt-cache rdépend de openjdk-6-jre 

Une longue liste de packages apparaîtra, y compris OpenOffice, FreeMind, OpenCol, etc.

Comment trouver le bon paquet «mère»?

OK, jusqu'ici si facile, mais comment puis-je savoir quel est le package "mère" sur lequel je devrais rechercher? Eh bien, cela nécessite une certaine expertise et une analyse préalable.

Supposons que je veuille connaître toutes les applications basées sur MONO. Dans ce cas, j'ai cherché les dépendances d'une application (GBrainy) dont je sais qu'elle utilise MONO et, sur cette base, détecter le package "mère" et rechercher les dépendances inverses. Uff, cela semble difficile mais c'est un non-sens.

J'ai ouvert un terminal et écrit:

apt-cache dépend de gbrainy

Les résultats sont les suivants:

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

Il m'a semblé que le mono-runtime pouvait être un bon candidat, j'ai donc décidé de rechercher tous les packages qui dépendaient du mono-runtime:

apt-cache rdépend du runtime mono

Voila! Tous les packages utilisant MONO apparaissent.

Pour voir une liste complète de tous les packages qui dépendent de certains packages MONO, nous aurions pu écrire:

apt-cache rdepends mono *
Remarque: cette méthode ne fonctionne que pour les applications répertoriées dans les référentiels APT.
Merci Feli!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Philippe Becerra dit

    Merci d'avoir répondu à Pablo et merci pour le message 🙂

  2.   Saito Mordraw dit

    Pablo tu es mon idole!

    Excellent poste.

  3.   Utilisons Linux dit

    Génial! Merci pour les données!

  4.   kraft dit

    Pour ceux d'entre nous qui utilisent des distributions brutes ………… blague

    pour ceux qui utilisent des gestionnaires de packages basés sur RPM, cette commande est utilisée

    packages rpm -qR

    exemple:

    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
    libgtread-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