6.9. Búsqueda de paquetes
Con la enorme y creciente cantidad de software en Debian surge una paradoja: Debian generalmente tiene una herramienta para la mayoría de las tareas, pero dicha herramienta puede ser difícil de encontrar entre tantos paquetes. La falta de formas apropiadas para buscar (y encontrar) la herramienta correcta es un problema desde hace tiempo. Afortunadamente este problema ha sido solucionado casi completamente.
La búsqueda más trivial posible es buscar el nombre exacto de un paquete. Si apt show paquete
devuelve un resultado entonces el paquete existe. Desafortunadamante esto necesita saber o adiviar el nombre del paquete, lo que no es siempre posible.
Un patrón de búsqueda ligeramente más exitoso es una búsqueda en texto plano de los nombres de los paquetes, pero es aún muy limitada. Generalmente puede encontrar resultados buscando en la descripción de los paquetes: dado que cada paquete tiene una descripción más o menos detallada además de su nombre, una búsqueda de palabras clave en estas descripciones generalmente será útil. apt-cache
y axi-cache
son las herramientas más utilizadas para este tipo de búsqueda; por ejemplo, apt-cache search video
devolverá una lista de todos los paquetes cuyos nombres o descripciones contengan la palabra clave «video».
Para búsquedas más complejas necesita herramientas más poderosas como aptitude
. aptitude
le permite buscar según expresiones lógicas basadas en los campos de metadatos de los paquetes. Por ejemplo, la siguiente orden busca aquellos paquetes cuyo nombre contenga kino
, cuya descripción contenga video
y cuyo nombre de encargado contenga paul
:
$ aptitude search kino~dvideo~mpaul
p kino - Non-linear editor for Digital Video data
$ aptitude show kino
Package: kino
Version: 1.3.4-2.2+b2
State: not installed
Priority: extra
Section: video
Maintainer: Paul Brossier <piem@debian.org>
Architecture: amd64
Uncompressed Size: 8300 k
Depends: libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libavc1394-0
(>= 0.5.3), libavcodec57 (>= 7:3.2.4) | libavcodec-extra57 (>=
7:3.2.4), libavformat57 (>= 7:3.2.4), libavutil55 (>= 7:3.2.4), libc6
(>= 2.14), libcairo2 (>= 1.2.4), libdv4 (>= 1.0.0), libfontconfig1
(>= 2.11), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:3.0),
libgdk-pixbuf2.0-0 (>= 2.22.0), libglade2-0 (>= 1:2.6.4-2~), libglib2.0-0
(>= 2.16.0), libgtk2.0-0 (>= 2.24.0), libice6 (>= 1:1.0.0),
libiec61883-0 (>= 1.2.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0
(>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libquicktime2 (>=
2:1.2.2), libraw1394-11, libsamplerate0 (>= 0.1.7), libsm6, libstdc++6
(>= 5.2), libswscale4 (>= 7:3.2.4), libx11-6, libxext6, libxml2 (>=
2.7.4), libxv1, zlib1g (>= 1:1.1.4)
Recommends: ffmpeg, curl
Suggests: udev | hotplug, vorbis-tools, sox, mjpegtools, lame, ffmpeg2theora
Conflicts: kino-dvtitler, kino-timfx, kinoplus, kino-dvtitler:i386, kino-timfx:i386,
kinoplus:i386, kino:i386
Replaces: kino-dvtitler, kino-timfx, kinoplus, kino-dvtitler:i386, kino-timfx:i386,
kinoplus:i386
Provides: kino-dvtitler, kino-timfx, kinoplus
Description: Non-linear editor for Digital Video data
Kino allows you to record, create, edit, and play movies recorded with DV camcorders.
This program uses many keyboard commands for fast navigating and editing inside the
movie.
The kino-timfx, kino-dvtitler and kinoplus sets of plugins, formerly distributed as
separate packages, are now provided with Kino.
Homepage: http://www.kinodv.org/
Tags: field::arts, hardware::camera, implemented-in::c, implemented-in::c++,
interface::graphical, interface::x11, role::program, scope::application,
suite::gnome, uitoolkit::gtk, use::editing, use::learning,
works-with::video, x11::application
La búsqueda solo devuelve un paquete, kino, que satisface los tres criterios.
Aún estas búsquedas multicritero son complejas, lo que explica porqué no son utilizadas tanto como se podría. Se desarrolló por lo tanto un nuevo sistema de etiquetas que provee un nuevo enfoque de búsqueda. Los paquetes con ciertas etiquetas proveen una clasificación temática según varios ejes, conocido como «clasificación en base a facetas». En el caso anterior con kino, las etiquetas del paquete indican que Kino es un software basado en Gnome que trabaja con datos de video y cuyo propósito principal es la edición.
Browsing this classification can help you to search for a package which corresponds to known needs; even if it returns a (moderate) number of hits, the rest of the search can be done manually. To do that, you can use the
~G
search pattern in
aptitude
, but it is probably easier to simply navigate the site where tags are managed:
Seleccionar las etiquetas works-with::video
y use::editing
sólo devuelve unos pocos paquetes que incluyen los editores de video kino y pitivi. El sistema de clasificación será utilizado más y más con el paso del tiempo y los encargados de los paquetes gradualmente proveerán interfaces de búsqueda eficientes sobre él.
Resumiendo, la mejor herramienta depende de la complejidad de la búsqueda que desee hacer:
apt-cache
sólo permite buscar en el nombre y la descripción de los paquetes, lo que es muy conveniente cuando busque un paquete particular que coincida con unas pocas palabras clave;
cuando el criterio de búsqueda incluya también relaciones entre paquetes u otros metadatos como por ejemplo el nombre del encargado, será más útil synaptic
;
cuando necesita una búsqueda sobre etiquetas packagesearch
es una buena herramienta, una interfaz gráfica dedicada a buscar paquetes disponibles según varios criterios (incluyendo el nombre de los archivos que contiene). Si desea utilizar la línea de órdenes, axi-cache
es su mejor opción.
finalmente, cuando la búsqueda implique expresiones complejas con operaciones lógicas, la herramienta a elegir será la sintaxis de patrones de búsqueda de aptitude
que es bastante potente aunque esté relativamente escondida; se puede utilizar tanto en el modo de línea de órdenes como en el modo interactivo.