Je vois que dpkg a un champ "Fournit" pour les packages.
$ apt-cache show vim-tiny | grep Provides
Provides: editor
$
Comment savoir quels packages fournissent, c'est-à-dire "éditeur"?
la source
Je vois que dpkg a un champ "Fournit" pour les packages.
$ apt-cache show vim-tiny | grep Provides
Provides: editor
$
Comment savoir quels packages fournissent, c'est-à-dire "éditeur"?
Vous pouvez obtenir l'effet souhaité sans aptitude
(ce qui semble être découragé de nos jours) en utilisant apt-cache showpkg
, qui comprend une liste de Reverse Provides
. Le passer à travers un petit sed
script va se débarrasser des autres choses:
apt-cache showpkg <package> | sed '/Reverse Provides/,$!d'
Un exemple un peu plus joli (mais plus long à taper) (répertorie uniquement les noms des packages, pas les versions et les trie par ordre alphabétique) peut être obtenu avec awk
:
apt-cache showpkg httpd | awk '/Pa/, /Reverse P/ {next} {print $1 | "sort"}'
... et cela peut être acheminé uniq
pour supprimer les doublons (qui peuvent exister en raison de plusieurs versions du package fournies en sens inverse). Notez que l'utilisation de uniq
n'aidera pas avec la première version, car uniq
ne supprime les doublons que s'ils se trouvent sur des lignes adjacentes et que la sed
version ne trie pas la sortie.
Enfin, on peut définir une fonction pour une utilisation plus simple, comme suit:
provides () { apt-cache showpkg $1 | awk '/Pa/, /Reverse P/ {next} {print $1 | "sort"}' | uniq;}
Collez-le (par exemple) .bashrc
, afin qu'il se charge lorsque le shell le fait, et il devient possible de l'exécuter provides <package>
pour obtenir les reverse-packages d'un package.
sort -u
supprimera les doublons, donc l'appel àuniq
n'est pas nécessaire. Mais peu importe, belle solution, c'est beaucoup plus rapide.aptitude
correspondradoom-wad-editor
aussi, donc ils ne sont pas complètement équivalents.sort -u
. Je ne connaissais pas celui-là. Je me demande pourquoi ça ne reprend pasdoom-wad-editor
...? C'est particulièrement intéressant carapt-cache showpkg
cela montre qu'il n'y a pas de dépendance du tout.aptitude
la recherche de correspondra aux sous-chaînes dans leProvides:
champ (donc ramasserdeutex
), où laapt-cache showpkg
méthode utilise des noms de package exacts. Les deux ont donc probablement leur place.<package>
s'agit d'un paquet virtuel ici. Commeeditor
.Provides:
ligne dans le référentiel. De la même manière queapt-cache search
, alors, le résultat correct quand il n'y en a pas est un manque de sortie - ce que ces options offrent. Il peut y avoir des versions concrètes et virtuelles du même package, et je suppose que nous pourrions les améliorer pour montrer la version concrète là où elle existe, mais c'est tout.Aptitude fournit également cette fonctionnalité. Une commande comme celle-ci affichera donc tous les packages qui fournissent un éditeur.
Vous pouvez même ajouter d'autres contraintes. Comme afficher uniquement les éditeurs installés.
la source
la source
Lecture directe de la base de données:
Usage:
la source
base sur votre exemple. Je peux lister le package fourni
editor
par utilisationapropos
la source
apropos
recherche dans les pages de manuel, donc cela ne listera que les commandes installées ... De plus, OP veut une liste de packages .