usando la búsqueda de apt-cache

10

Estoy aprendiendo a usar apt. Cuando hago un apt-cache search git para ver todos los paquetes que coinciden con git, veo un montón de paquetes cuyas descripciones no tienen nada que ver con git. ¿Por qué es así y cómo puedo solucionarlo? (Ubuntu 12.04.2 LTS).

Además, ¿por qué se encuentra la funcionalidad de búsqueda en un comando que tiene "caché" en su nombre? ¿Qué tiene que ver la funcionalidad de búsqueda con los cachés?

Gracias.

Jason Posit
fuente

Respuestas:

12

Si solo desea buscar por nombre, use el --names-onlyargumento Para obtener más información, lea el man apt-cache, sería útil.

ssoto
fuente
6

Cuando ejecuta un apt-cache search <package name>comando, realiza una consulta contra la información almacenada en su máquina local para los paquetes disponibles. Este es el caché de sus repositorios "suscritos". Es decir, el comando está realizando una consulta en los repositorios que ha configurado en USC (Centro de software de Ubuntu) o Synaptic.

De acuerdo con la apt-cachepágina del manual, /etc/apt/sources.listes la ubicación para obtener información de la consulta. Hay un par de ubicaciones adicionales para otros tipos de información del paquete. Ver man apt-cachepara más detalles.

Esencialmente, la ejecución apt-cache search gitdevolverá todas las instancias de paquetes disponibles que contengan la secuencia de palabras "git" en el nombre del paquete, así como en la descripción del paquete.

Por ejemplo, esto significa que cualquier paquete que pueda contener la secuencia de palabras "git", como la palabra "di git al", en su descripción también se devolverá como resultado. Tenga en cuenta el negrita en la oración anterior.

Si solo está interesado en paquetes específicamente relacionados con git, el administrador de control de código fuente, deberá restringir su consulta para que use una expresión regular para que los resultados de búsqueda sean más restrictivos.

Por ejemplo:

sudo apt-cache search ^git$

devolverá resultados que contengan explícitamente solo la frase "git" en el nombre del paquete.

Por ejemplo:

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

El comando: sudo apt-cache search ^git

devolverá resultados para paquetes que comienzan con la frase "git":

Por ejemplo:

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

Dicho esto, deberá ajustar sus consultas de la caché del paquete para ser más específico a su interés. Espero que esto ayude.

Kevin Bowen
fuente
" apt-cache search ^git$solo devolverá resultados que contengan" git "en el nombre del paquete". No entiendo esto, porque, por ejemplo git-man(del segundo resultado que publicaste) también contiene git. ¿Puedes explicar qué significan los símbolos de intercalación y $? Sé que el símbolo de intercalación significa "comienza con", pero esto contradice con la segunda salida que publicó (salida de ^git), porque devuelve easygit=).
Alaa Ali
Oooh Los ^paquetes de medios y las descripciones que comienzan con git. De acuerdo, se entiende la segunda salida. Entonces, ¿qué ^git$devuelve? ¿Paquetes que comienzan con gity ...?
Alaa Ali
@Alaa Piense en los caracteres "^" y "$" como anclajes a su consulta. apt-cache search ^git$devolverá, específicamente, el paquete git. apt-cache search ^gitdevolverá paquetes que comienzan con la frase "git" y serán menos específicos.
Kevin Bowen
Se podría obtener un resultado de búsqueda más generalizado ejecutando la consulta apt-cache search ^ git? `
Kevin Bowen
Para tener un resultado más colorido, uno podría mejorar su comando conapt-cache search ^git | grep --color git
georg
0

Esta es una respuesta indirecta a su pregunta, pero aún está relacionada, ya que se trata de la administración de paquetes. Yo personalmente uso aptitude en lugar de apt-get. aptitude es el equivalente sináptico de terminal.

Buscar,

sudo aptitude search $keyword

Otros comandos

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Para instalar aptitude,

sudo apt-get install aptitude
llt
fuente
Tenga en cuenta que la aptitud todavía puede ser problemática en sistemas multiarch, por lo que está bien usarla para consultas / búsquedas, pero no para instalar / eliminar paquetes.
Guntbert
help.ubuntu.com/community/MultiArch explica cómo la aptitud puede ser utilizado para las preocupaciones Multiarch
LLT
Esa página solo menciona aptitude why, como dije "úsela para consultas", la página también es bastante antigua (editada el 2012-02-08), por lo que mi advertencia sigue en pie.
guntbert
Veo. Soy un usuario de aptitud, ¿puede señalarme un artículo donde diga que es problemático en el sistema multiarch? Es posible que necesite volver a apt-get entonces.
LLT
bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , parece que se ha solucionado recientemente. Todavía soy cauteloso. Debian recomienda apt-get también (documentos para wheezy)
guntbert
0

Instale apt-xapian-index y use axi-cache search cuando busque en lugar de apt - cache. Obtendrás resultados mucho mejores

zaonline
fuente