en utilisant la recherche apt-cache


10

J'apprends à utiliser apt. Quand je fais un apt-cache search git pour voir tous les paquets correspondant à git, je vois un tas de paquets dont les descriptions n'ont rien à voir avec git. Pourquoi en est-il ainsi et comment puis-je y remédier? (Ubuntu 12.04.2 LTS).

Aussi, pourquoi la fonctionnalité de recherche se trouve-t-elle dans une commande qui a "cache" dans son nom? Qu'est-ce que la fonctionnalité de recherche a à voir avec les caches?

Merci.

Réponses:


12

Si vous souhaitez uniquement rechercher par nom, utilisez l' --names-onlyargument. Pour plus d'informations, lisez le man apt-cache, il serait utile.


6

Lorsque vous exécutez une apt-cache search <package name>commande, vous effectuez une requête sur les informations stockées sur votre ordinateur local pour les packages disponibles. Il s'agit du cache de vos référentiels "abonnés". En d'autres termes, la commande effectue une requête sur les référentiels que vous avez configurés dans USC (Ubuntu Software Center) ou Synaptic.

Selon la apt-cachepage de manuel, /etc/apt/sources.listest l'emplacement de récupération des informations dans la requête. Il existe quelques emplacements supplémentaires pour d'autres types d'informations sur les packages. Voir man apt-cachepour plus de détails.

Essentiellement, l'exécution apt-cache search gitretournera toutes les instances des packages disponibles contenant la séquence de mots "git" dans le nom du package, ainsi que dans la description du package.

Par exemple, cela signifie que tout package pouvant contenir la séquence de mots "git", comme le mot "di git al", dans sa description sera également renvoyé en conséquence. Veuillez noter les caractères gras dans la phrase précédente.

Si vous n'êtes intéressé que par les packages qui sont spécifiquement concernés par git - le gestionnaire de contrôle de source, vous devrez restreindre votre requête à l'utilisation d'une expression régulière afin de rendre les résultats de recherche plus restrictifs.

Par exemple:

sudo apt-cache search ^git$

renverra des résultats qui contiennent explicitement uniquement la phrase "git" dans le nom du package.

Par exemple:

sudo apt-cache search ^git$
git - fast, scalable, distributed revision control system

La commande: sudo apt-cache search ^git

renverra les résultats des packages qui commencent par la phrase "git":

Par exemple:

sudo apt-cache search ^git
git - fast, scalable, distributed revision control system
git-core - fast, scalable, distributed revision control system (obsolete)
git-doc - fast, scalable, distributed revision control system (documentation)
git-man - fast, scalable, distributed revision control system (manual pages)
gitk - fast, scalable, distributed revision control system (revision tree visualizer)
easygit - git for mere mortals
gforge-plugin-scmgit - Git plugin for FusionForge (transitional package)
git-all - fast, scalable, distributed revision control system (all subpackages)
git-annex - manage files with git, without checking their contents into git
git-arch - fast, scalable, distributed revision control system (arch interoperability)
...

Cela dit, vous devrez régler vos requêtes sur le cache du package pour être plus spécifique à votre intérêt. J'espère que cela t'aides.


apt-cache search ^git$msgstr " ne retournera que les résultats contenant" git "dans le nom du paquet". Je ne comprends pas cela, car, par exemple git-man(à partir de la deuxième sortie que vous avez publiée) contient également git. Pouvez-vous expliquer ce que signifient le signe d'insertion et les symboles $? Je sais que le curseur signifie "commence par", mais cela contredit ensuite la deuxième sortie que vous avez publiée (sortie de ^git), car elle renvoie easygit=).
Alaa Ali

Oooh. Les ^moyens packages et descriptions commençant par git. D'accord, la deuxième sortie est comprise. Alors qu'est-ce qui ^git$revient? Forfaits commençant par gitet ...?
Alaa Ali

@Alaa Considérez les caractères "^" et "$" comme des ancres à votre requête. apt-cache search ^git$renverra, en particulier, le paquet git. apt-cache search ^gitrenverra des packages qui commencent par la phrase "git" et seront moins spécifiques.
Kevin Bowen

On pourrait obtenir un résultat de recherche plus généralisé en exécutant la requête apt-cache search ^ git? `
Kevin Bowen

Afin d'avoir une sortie plus colorée, on pourrait améliorer votre commande avecapt-cache search ^git | grep --color git
georg

0

Il s'agit d'une réponse indirecte à votre question mais toujours liée à celle-ci, car il s'agit de la gestion des packages. J'utilise personnellement aptitude au lieu d'apt-get. aptitude est l' équivalent synaptique de terminal.

Chercher,

sudo aptitude search $keyword

Autres commandes

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Pour installer aptitude,

sudo apt-get install aptitude

Gardez à l'esprit que l'aptitude peut toujours être problématique sur les systèmes multiarchitecture - il est donc correct de l'utiliser pour des requêtes / recherches mais pas pour l'installation / la suppression de packages.
guntbert

help.ubuntu.com/community/MultiArch explique comment l'aptitude peut être utilisée pour les problèmes
multiarchitecture

Cette page mentionne seulement aptitude why- comme je l'ai dit "l'utiliser pour les requêtes" - la page est assez ancienne aussi (édité le 2012-02-08) - donc mon avertissement tient toujours.
guntbert

Je vois. Je suis un utilisateur d'aptitude alors pouvez-vous me signaler un article où il dit que c'est problématique sur le système multiarchitecture? Je devrai peut-être revenir à apt-get.
llt

bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , il semble avoir été corrigé récemment. Je me méfie toujours. Debian recommande également apt-get (documents pour Wheezy)
Guntbert

0

Installez apt-xapian-index et utilisez la recherche axi-cache lors de la recherche au lieu de apt - cache. Vous obtiendrez de bien meilleurs résultats

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.