Tutorial de aptitude exDebian

Tutorial de aptitude

Solapas principales

Índice

1. Introducción
2. Aptitude
2.1. Entremos en faena ...
2.2. Zonas de la pantalla de aptitude
2.3. Moverse
2.4. Información (banderas) de los paquetes
3. Trabajar con aptitude
3.1. Gestión de paquetes
3.2. Buscar paquetes con aptitude
3.2.1. Patrones de búsqueda
3.3. Solucionar problemas de dependencias
3.4. Instalación manual y automática
3.5. Tareas
3.6. Salir de aptitude
4. Y aún hay más...
4.1. Más opciones de configuración
4.2. Información del histórico de paquetes instalados, actualizados y eliminados
4.3. Personalizando la lista de paquetes
4.3.1. Información de los paquetes
4.3.2. Jerarquía de paquetes
4.3.3. Orden de los paquetes
4.4. Archivos importantes
5. Aptitude desde línea de comandos
5.1. Acciones
5.2. Opciones
Referencias

1. Introducción

Aptitude es un gestor de paquetes para sistemas Debian GNU/Linux, que proporciona la funcionalidad de dselect y apt-get, así como de muchos elementos adicionales que no se encuentran en cualquiera de los dos programas. Tiene una interfaz en modo texto, basado en ncurses, para el manejo del sistema de paquetes de GNU/Linux, que tiene fama de resolver mejor las dependencias que apt y eliminar paquetes inútiles. Entre otras, permite a un usuario:

- Visualizar las distintas listas de paquetes
- Realizar tareas de gestión de paquetes, tales como instalar, actualizar y eliminar paquetes.
- Realizar búsquedas de paquetes
- Resolver problemas de dependencias
- Jugar al buscaminas

Éstas acciones pueden ser llevadas a cabo desde una interfaz visual o de la línea de comandos, en este artículo nos vamos a centrar en su interfaz.

2. Aptitude

2.1. Entremos en faena ...

Ejecutamos aptitude con:
#aptitude

http://i.imgur.com/FdwfqZY.png

Sugerencia: Si deseas experimentar con aptitude, puedes ejecutarlo con cualquier usuario que no sea root y así no podrás dañar tu sistema de ninguna manera. Cuando trates de hacer algo con privilegios de root, aptitude te avisará y si quieres seguir, te preguntará la contraseña de root.

Sugerencia: Si estas en un sistema híbrido quizás querrás ejecutar aptitude mostrando una preferencia a una rama en concreto (p.ej. tienes tus repositorios apuntando a testing y a sid, pero solo quieres acutualizar los paquetes en testing sin cambiar a sid todo tu sistema).
Para estos casos existe la opción: -t. Con esta opción podras especificar que rama usar en esa sesión con aptitude. Por lo tanto la orden de ejecución será:

#aptitude -t rama

2.2. Zonas de la pantalla de aptitude

La pantalla de aptitude se puede dividir en tres partes:

  • La línea azul en la parte superior es la barra de menús.
    barra_menu
  • A continuación tenemos un espacio negro, donde encontraremos una lista de todos los paquetes disponibles, ordenados por grupos de paquetes.
    lista_paquetes
  • Abajo tenemos una barra azul, debajo de la cual veremos mensajes informativos, es el área de información.
    area de informacion

2.3. Moverse

Para movernos por los menús de aptitude:

  • Abrir el menú: Control + t
  • Moverse por las distintas opciones de un menú: con las teclas arriba y abajo
  • Moverse por los distintos menús: con las teclas izquierda y derecha
  • Seleccionar elementos de menú: con la tecla Enter
  • Cerrar el menú: presionar nuevamente Control + t

Nota: Muchas de las opciones se pueden activar mediante atajos de teclado, por ejemplo, el comando Actualizar la lista de paquetes se puede activar pulsando la tecla u. Pulsando ? veremos una referencia de los métodos abreviados de teclado disponibles.

Para movernos por la lista de paquetes:

Al iniciar, aptitude nos mostrará la lista de paquetes:

  • Paquetes nuevos (previamente habrá que actualizar la lista de paquetes, atajo: tecla u, para borrar la anterior lista de paquetes nuevos pulsaremos la tecla f)
  • Paquetes instalados
  • Paquetes no instalados
  • Paquetes obsoletos y creados localmente
  • Tareas

Como hemos dicho, puedes moverte por las distintas listas con la flechas arriba y abajo, viendo en la parte inferior su descripción, para abrir/cerrar el contenido de cada lista pulsar la tecla Enter, y veremos los distintos grupos (y subgrupos) de cada lista, hasta llegar finalmente a listado de paquetes, si nos movemos por ellos podremos ver su descripción en el área de información y podemos ampliar dicha información pulsando Enter, esto abrirá una nueva vista (similar a la pestaña de un navegador) identificable por el nombre del paquete en la parte superior de la pantalla. Podemos mantener varias vistas abiertas a la vez, para desplazarnos entre ellas usaremos las teclas F6 y F7 (siguiente y previa, respectivamente), con q la cerramos y volvemos a la anterior.

lista desplegada

Además de la vista general de un paquete mencionada anteriormente, existen algunas teclas que nos dan información más sintetizada o datos adicionales.

d Dependencias, incluyendo recomendaciones, sugerencias, conflictos y reemplazos.
r Dependencias inversas, es decir, los mismos conceptos anteriores aplicados al paquete seleccionado (qué paquetes dependen de él, y no al revés).
v Versiones disponibles para el paquete seleccionado, algo común cuando tenemos un sistema híbrido o con múltiples fuentes.
C Ver el registro de cambios (changelog) del paquete, útil para conocer la prioridad de las actualizaciones, fecha de publicación y notas de los desarrolladores.

informacion paquete

Para movernos por el área de información:

Pulsaremos a para subir y z para bajar.
i para ciclar entre la descripción del paquete, su estado y la razón por la que está instalado (de estarlo).
Pulsando D podremos ocultar o volver a ver el área de información.

2.4. Información (banderas) de los paquetes

Información que nos proporcionan las banderas de ESTADO de un paquete:

i El paquete esta instalado, y todas sus dependencias están satisfechas.
c El paquete ha sido eliminado, pero sus archivos de configuración todavía están presentes.
p El paquete y todos sus archivos de configuración se eliminaron, o nunca fue instalado.
v El paquete es virtual.
B El paquete tiene dependencias rotas.
u El paquete ha sido desempaquetado, pero no configurado.
C El paquete está medio configurado, se interrumpió la configuración del paquete.
H El paquete está medio instalado, se interrumpió la instalación del paquete.

Información que nos proporcionan las banderas de ACCIÓN que se realizarán sobre un paquete:

i El paquete marcado para instalarse.
u El paquete será actualizado.
d El paquete será eliminado, será eliminado, pero sus archivos de configuración se mantendrán en el sistema.
p El paquete será purgado, se eliminarán tanto el paquete marcado como sus archivos de configuración.
h El paquete será bloqueado/retenido: se va a mantener en su versión actual, incluso si una nueva versión está disponible, hasta que se desbloquee.
F Se prohibe la actualización del paquete.
r El paquete será reinstalado.
B El paquete está "roto", algunas de sus dependencias no están satisfechas.

3. Trabajar con aptitude

3.1. Gestión de paquetes

Ahora que ya sabemos como movernos por aptitude y entendemos la información que nos muestra sobre los paquetes, es el momento de empezar a utilizar aptitude.

Lo primero es actualizar la lista de paquetes, para ello pulsamos la letra u (o menú /Acciones/Actualizar la lista de paquetes).

Todos los cambios de un paquete se realizan a través de la lista de paquetes, y pulsando la tecla correspondiente a la acción que se quiera realizar sobre ése paquete. Así las claves básicas de acción sobre un paquete son:

+ Instalar/actualizar un paquete
- Eliminar un paquete
_ Purgar un paquete
= Retener un paquete
: Mantener un paquete
L Reinstalar el paquete, descargándolo de ser necesario.

Las acciones que se vayan marcando no se realizan de inmediato; aptitude simplemente actualiza la lista de paquetes para mostrar el cambio (con su bandera correspondiente) que se ha solicitado, hasta el momento que deseemos realizar todos los cambios, en ese momento pulsamos la letra g y veremos el resumen de lo que aptitude va a hacer, para que podamos ver si nos interesa continuar, si es así pulsamos nuevamente g y aptitude realizará las acciones indicadas.

acciones

Nota: En cualquier momento, podemos deshacer los cambios en uno o más paquetes pulsando Control + u. Esto es muy útil si una acción tiene consecuencias no previstas o nos hemos equivocado.

Un ejemplo, si queremos hacer una actualización rápida de nuestro sistema pulsaríamos:

1. u (actualiza la lista de paquetes)
2. U (marca todos los paquetes actualizables)
3. g (nos muestra una previsualización de qué acciones va a realizar)
4. g (realizar las acciones indicadas)

Otras acciones.

R Reconfigurar el paquete (mediante dpkg-reconfigure). Esta acción se ejecutará inmediatamente, sin pasar por la pantalla de previsualización.
m Marcar al paquete como instalado manualmente.
M Marcarlo como automático.

Las últimas dos opciones modifican directamente la información del paquete y tampoco requieren confirmación ni pasar por el modo de instalación para guardar los cambios, aunque sí pueden deshacerse.

3.2. Buscar paquetes con aptitude

Para iniciar el cuadro de diálogo de búsqueda y encontrar rápidamente un paquete cuyo nombre conozcamos, presionamos / e introducimos el nombre del paquete que queramos buscar, o seleccionamos la opción Buscar en el menú Buscar. Fácil, ¿no?

busquedas

Al terminar de ingresar el término regresaremos a la lista de paquetes con la primera ocurrencia seleccionada, si deseamos pasarnos a la siguiente usaremos la n y con N regresamos al resultado anterior. Para realizar una búsqueda hacia atrás utilizaremos \ en lugar de /, e igualmente nos desplazaremos entre los resultados mediante la letra n y N. Es importante señalar que la búsqueda se inicia desde la posición que tengamos seleccionada en la lista de paquetes, por lo que influirá en el orden de los resultados.

En la funcionalidad de búsqueda -salvo que hayamos cambiado la configuración, podemos ver que se obtienen resultados a medida que vamos tecleando. Esto puede considerarse generalmente como una ventaja, pero a la vez representa una carga importante para el sistema, quizá no cuando buscamos por nombres de paquetes, pero sí al utilizar los patrones de búsqueda que mencionaremos mas adelante. Este comportamiento puede ser ser deshabilitado desde el menú Opciones/Preferencias/Mostrar resultados parciales de búsqueda.

A la par del tipo convencional de búsqueda para mostrar y desplazarse entre resultados, existe una funcionalidad más, que permite filtrar la lista de paquetes de forma que sólo se vean los que cumplan con nuestra búsqueda, a la vez que se mantiene la estructura de la vista de paquetes. Para utilizar esta opción presionaremos l (letra ele), e introduciremos los términos de la misma forma en que lo haríamos en el otro cuadro de diálogo.

limitar vista

3.2.1. Patrones de búsqueda

Aunque el criterio de búsqueda básico en aptitude es el nombre de los paquetes, es posible construir expresiones mas o menos complejas y basarse en otros parámetros, tales como la ubicación (rama), estado, desarrollador, descripción, entre muchos otros. Las expresiones regulares, como no podía ser menos, son la herramienta básica para declarar los criterios de búsqueda. A continuación veremos algunos ejemplos:

Inicio y fin de una expresión (^,$)

Con los símbolos ^ y $ podemos indicar que el término a buscar está al inicio o al final del elemento de búsqueda, respectivamente.

^gnome Los paquetes que comiencen con "gnome".
linux$ Los paquetes cuyo nombre termine en "linux".

Operadores lógicos (!,|)

^kde !~V3.5.8 Paquetes que comiencen con "kde", pero cuya versión NO contenga "3.5.8".
gtk|qt Paquetes que tengan "gtk" o "qt" (o ambos) en su nombre.

Agrupación de expresiones ()
~D(perl|python) Paquetes que dependen de "perl" o "python", equivalente a "~Dperl|~Dpython".

Otros patrones.

En los ejemplos anteriores vimos un par de términos precedidos de una tilde (~) y un caracter. Este tipo de expresiones son las que nos permiten aplicar la búsqueda sobre determinados datos de los paquetes. Veamos algunos de ellos:

~Aarchivo Buscará los paquetes cuyas versiones se ubiquen en el archivo indicado, normalmente tomando valores como "stable","testing","unstable" y "experimental", aunque en realidad busca las coincidencias con el campo "Suite" en los archivos Release de cada repositorio.

~aaccion Selecciona los paquetes que estén marcados para la acción indicada. Las opciones posibles son "install”, “upgrade”, “downgrade”, “remove”, "purge", "hold"

~aupgrade Busca los nuevos paquetes marcados para actualización.

~ddescripcion Busca los paquetes que tengan el término proporcionado dentro de su descripción, tal como hace apt-get search.

~djava ~dgtk Paquetes con "java" y "gtk" en su descripción.

~Getiquetas Utiliza el sistema de etiquetas de Debian (Debtags) para obtener los resultados. Las etiquetas de cada paquete pueden verse en el panel de información, justo después de la descripción.

~Gsql Paquetes que contengan "sql" en sus etiquetas, lo que denota su relación con este lenguaje y las bases de datos.

~mdesarrollador Paquetes cuyo campo Desarrollador cumplen con el término indicado. Por ejemplo: ~m"Miriam Ruiz"

~Ctérmino Paquetes que tienen conflictos con otros paquetes que cumplen con el término proporcionado.

Ejemplo: ~C~d(^mplayer) dará como resultados a mplayer y mplayer-nogui, pues tienen conflictos entre sí.

~ntérmino Paquetes cuyo nombre cumpla con el patrón especificado. Es el tipo de búsqueda por omisión.

~ttarea Paquetes que aparezcan dentro de la tarea que cumpla con el término.

~Btipo Paquetes rotos por un tipo de dependencia específico, las opciones son: "depends”, “predepends”, “recommends”, “suggests”, “breaks”, “conflicts”, y “replaces”. Hay que tomar en cuenta que las recomendaciones, sugerencias y reemplazos no representan ningún problema, pero de igual forma aparecen en los resultados en caso de verse insatisfechas.

~b Paquetes rotos por dependencias, predependencias y conflictos.

~c Paquetes con la bandera "c" en su estado, es decir, desinstalados pero con archivos de configuración en el sistema.

~i Paquetes instalados en el sistema

~M Paquetes instalados automáticamente para satisfacer dependencias (marcados con A).

~N Paquetes nuevos en el sistema.

~Oorigen Este término nos puede ser especialmente útil cuando tenemos más de una fuente en nuestro sources.list, de manera que podamos filtrar los paquetes por sus respectivos orígenes. La expresión a usar deberá coincidir con el campo Origin en el archivo Release (/var/lib/apt/lists/*Release) del repositorio que deseemos consultar. Por ejemplo, el repositorio oficial de Debian en cualquiera de sus ramas tiene como valor "Debian", el de debian-multimedia.org es "Unofficial Multimedia Packages" y el de backports.org es "Backports.org archive". Para estos casos, los términos a emplear podrían ser "debian", "multimedia" y "backports", respectivamente, pues las coincidencias serían unicas.

~U Paquetes que pueden ser actualizados.

~v Paquetes virtuales, es decir, aquellos que no existen realmente pero representan una funcionalidad proporcionada por otros. Por ejemplo, los paquetes de documentación en html no suelen depender de un navegador específico, sino de www-browser. A su vez, los navegadores proporcionan ese nombre de paquete (ofrecen esa funcionalidad), por que la dependencia se ve satisfecha con cualquiera de ellos.

3.3. Solucionar problemas de dependencias

Si se produce un problema de dependencias, aptitude nos muestra una barra roja en la parte inferior de la pantalla con un resumen de las sugerencias que aptitude nos propone para solucionarlo.

- Pulsando e , veremos la solución propuesta por aptitude con más detalle
- Pulsando a , aprobamos la solución actual
- Pulsando r rechazamos la solución propuesta
- Pulsando . , vemos la siguiente solución
- Pulsando , , vamos a la solución anterior
- Pulsando ! , aplicamos las acciones marcadas

Si tenemos en nuestro sistemas varios paquetes rotos, aptitude nos avisa y nos explica la razón por la que se produjo.

Aptitude muestra tres indicadores de que algo ha ido mal:

  1. En la parte superior del área azul se muestra el número de paquetes rotos
  2. La mitad inferior de la pantalla cambia para describir los paquetes rotos que están relacionadas con el paquete actualmente destacado,
  3. Aparece una barra en la parte inferior de la pantalla con una sugerencia sobre la forma de resolver el problema.

Para encontrar rápidamente los paquetes rotos en la lista de paquetes, pulsamos la letra b (al volver a pulsar b aptitude nos lleva al siguiente paquete roto, en caso de haberlo).

Si no resolvemos las dependencias rotas, por defecto, aptitude aplicará automáticamente sus sugerencia cuando confirmemos nuestras selecciones pulsando g. Sin embargo, es difícil resolver los problemas de dependencias automáticamente, y puede que no estemos satisfechos con los resultados, por lo que es conveniente que revisemos los planes de aptitude antes de comprometernos a realizar sus sugerencias.

3.4. Instalación manual y automática

Dependiendo de la forma en que fue instalado en el sistema, un paquete puede verse afectado por las acciones realizadas sobre otros. Por ejemplo, si el paquete A depende de B y C, ambos serán instalados y marcado como automáticos, por lo que si desinstaláramos A y ningún otro paquete dependiese de B y C, estos también serían desinstalados. Esta situación es generalmente aceptable y conveniente para evitar quedarnos con paquetes innecesarios, pero puede ocurrir que deseemos mantener a B, C o ambos, incluso después de eliminar A.

Por ejemplo, los entornos de escritorio suelen venir estructurados como metapaquetes, es decir, paquetes que no tienen contenido y utilidad por sí mismos, pero mediante dependencias y recomendaciones consiguen otros paquetes que sí lo tienen; a veces los metapaquetes tienen más dependencias de las que en realidad necesitamos, o en algún momento queremos deshacernos del paquete principal, conservando todas o algunas de las dependencias. Veamos un ejemplo real donde podamos apreciar este tipo de situaciones:

El paquete kdegraphics depende de kamera, kcoloredit, kdegraphics-kfile-plugins, kdvi, kfax, kfaxview, kgamma, kghostview, kiconedit,kmrml, kolourpaint, kooka, kpdf, kpovmodeler, kruler, ksnapshot, ksvg, kuickshow, kview, kviewshell y libkscan1. Supongamos que tenemos instalado este paquete, y nos damos cuenta que la mitad de esas aplicaciones no las utilizamos, pero la otra mitad sí, entonces procedemos a marcar para desinstalación a kfax, kfaxview, kamera, kooka, kruler, kiconedit y kuickshow, vemos que aptitude nos marca kdegraphics como roto, y la mejor solución que nos da es eliminar todas sus dependencias, algo que no queremos.

kdegraphics

¿Qué hacemos? Lo primero que se nos puede ocurrir es continuar con el proceso y reinstalar manualmente una a una de las aplicaciones que en un principio no queríamos desinstalar, al final terminaremos con los programas que queremos y ahora marcados como manuales. Evidentemente este no es un buen manejo del sistema de paquetes. Apt provee un mecanismo para identificar la forma en que fueron instalados los paquetes y modificar dicha información. Veamos qué otro camino podemos tomar haciendo uso de esta característica.

- Para empezar, marcaremos como manuales las dependencias de kdegraphics: presionamos d sobre este paquete para listar sus dependencias, y enseguida m" sobre el grupo "Depende", veremos como la "A" desaparece de cada uno de ellas.
- Marcamos para desinstalación los paquetes que queramos (- ó _).
- kdegraphics aparecerá como roto y aptitude nos sugerirá eliminarlo, pero ahora dejará intactos a los paquetes que sí queremos mantener, pues al marcarlos como manuales los volvemos "independientes" de quien originalmente ocasionó su instalación.
- Confirmamos las acciones y al terminar obtenemos el mismo resultado, pero en menos tiempo y sin desinstalar/reinstalar paquetes en vano.

En este ejemplo nos hemos centrado en kdegraphics y sus dependencias, sin considerar a algún paquete más que dependa de uno o más de los mismos paquetes y por tanto evite sus desinstalaciones, tampoco hemos considerado el hecho de que kdegraphics es una dependencia del metapaquete kde, pues es exactamente la misma situación en un grado superior.

3.5. Tareas

Ya hemos visto que dentro de la lista de paquetes de aptitude, nos encontramos con la línea "Tareas". Las Tareas son un grupo de paquetes que proporcionan un modo sencillo de seleccionar un conjunto predefinido de paquetes para un propósito en particular, en concreto nos encontramos con tareas para:

tareas

  • Localización, con ésta tarea podremos instalar los paquetes y la documentación para ayudar a utilizar Debian en el idioma que deseemos
  • Servidores, en su interior encontraremos las tareas para instalar un: servidor DNS, de correo, de ficheros y web.
  • Usuario final, nos encontraremos las tareas para poder instalar los entornos de escritorio de KDE, Gnome y Xfce; además de todos aquellos paquetes de interés para un ordenador portátil.
  • Tareas sin reconocer, otras tareas no determinadas.

Gracias a las "Tareas" de aptitude, logramos simplificar enormemente la instalación y el conocimiento sobre que paquetes son necesarios para instalar determinados entornos de escritorio o servicios. Así por ejemplo, si queremos instalar "Xfce" pero no sabemos que paquetes son necesarios instalar para obtenerlo, bastaría con irnos a las tareas de aptitude/Entorno de escritorio de Xfce para obtener el listado de paquetes necesarios para instalarlo, marcándolos para instalar con la tecla +.

3.6. Salir de aptitude

Basta con pulsar la letra q (quit).

4. Y aún hay más...

Aptitude nos permite realizar muchas más acciones, opciones, vistas, tareas ... y largo etcétera que deberás ir descubriendo poco a poco... y si te aburres... ¡juega al buscaminas!.

buscaminas

4.1. Más opciones de configuración

A través del Menú Opciones, podremos configurar la apariencia y comportamiento a nuestro gusto, así podremos variar:

  • La apariencia de aptitude

gui

Nos moveremos con las fechas "arriba" y "abajo" y marcamos/desmarcamos con la barra espaciadora las opciones a nuestro gusto.

  • El manejo de dependencias

Aptitude trata de forma predeterminada su manejo de dependencias, éste manejo predeterminado lo podemos modificar desde el menu Opciones/Manejo de dependencias, pudiendo así marcar o desmarcar (en función de nuestro gusto):

dependencias

  • Otras opciones de miscelánea

Dentro del Menú Opciones/Miscelánea podremos modificar algunos comportamientos de aptitude, como por ejemplo:

miscelanea

4.2. Información del histórico de paquetes instalados, actualizados y eliminados

Muchas veces nos podemos encontrar en la situación de necesitar saber que hemos instalado, actualizado o eliminado en nuestro sistema, para ello aptitude nos provee de un log con ésa información, su ubicación es: /var/log/aptitude.

¿Que es un log?, pues un registro oficial de eventos durante un periodo de tiempo en particular, así, y gracias a su log, aptitude nos informa de cualquier cambio que hayamos realizado en el estado de un paquete, en él nos encontramos con:

  1. Información de la versión de aptitude que utilizamos
  2. Fecha del log (momentos en los que hemos utilizado aptitude)
  3. Estadísticas de las acciones que realizó aptitude en ésa fecha
  4. Registro de las acciones realizadas sobre cada paquete

Ejemplo del log:

Registro completado.
Aptitude 0.4.10: informe de registro
lun, abr 7 2008 15:51:34 +0200

IMPORTANTE: este registro sólo muestra las acciones que se pretenden
realizar. Puede que no se completen algunas acciones por fallos de dpkg.

Se instalarán 276 paquetes y se eliminarán 2.
Se usará 341kB de espacio en disco
===============================================================================
[ELIMINA, NO USADO] kaboodle
[INSTALA, DEPENDENCIAS] djvulibre-desktop
[INSTALA, DEPENDENCIAS] libdjvulibre21
[INSTALA, DEPENDENCIAS] libilmbase6
[INSTALA, DEPENDENCIAS] libopenexr6
[ELIMINA, DEPENDENCIAS] libdjvulibre15
[ACTUALIZA] adduser 3.106 -> 3.107
[ACTUALIZA] akregator 4:3.5.8-1 -> 4:3.5.9-2
[ACTUALIZA] amor 4:3.5.8-1 -> 4:3.5.9-1
[ACTUALIZA] ark 4:3.5.8-1 -> 4:3.5.9-1

[.....]

4.3. Personalizando la lista de paquetes

4.3.1 Información de los paquetes

Podemos utilizar diversas secuencias de escape para mostrar la información que consideremos necesaria mientras trabajamos con aptitude. Los valores predeterminados en general se pueden considerar suficientes para la mayoría de las casos, pero estas opciones están ahí para el que las necesite. Por ejemplo, para usuarios de más de una rama de desarrollo de Debian (testing/unstable, unstable/experimental) puede ser útil conocer a qué distribución pertenece cada versión de un paquete determinado; de igual forma, a otros usuarios les puede interesar conocer el espacio en disco usado por cada paquete mientras se desplaza en la lista, o el número de paquetes instalados que dependen de ellos (dependencias inversas).

Existen tres variables que representan las diferentes áreas en las que podemos configurar la información a mostrar:

Aptitude::UI::Package-Display-Format
Valor predeterminado: "%c%a%M %p %Z %v %V"
Esta cadena representa el nombre de los paquetes en la vista principal. Nos muestra la siguiente información: banderas de estado, acción y tipo de instalación (manual/automática), nombre del paquete, espacio adicional al instalarse, versión actual y versión candidata.
display

Aptitude::UI::Package-Status-Format
Valor predeterminado: "%d"
Corresponde a la barra de color azul que vemos entre la lista de paquetes y el área de información. La información por defecto es la descripción corta del paquete.
status

Aptitude::UI::Package-Header-Format
Valor predeterminado: "%N %n #%B %u %o"
El encabezado con datos como el nombre del programa (aptitude) y su versión, número de paquetes rotos, el espacio en disco necesario o liberado después de la instalación, actualización o borrado, y el tamaño de la descarga. Se ubica justo entre la lista de paquetes y la barra de menús.
header

Para configurar estas cadenas de formato, podemos seleccionar desde el menú principal Opciones::Preferencias::Opciones de la IU, y rellenar el formato de cada una de las tres opciones. O bien, modificando el archivo ~/.aptitude/config y agregando las definiciones de la siguiente forma:

aptitude::UI::Package-Status-Format "%d %t";
(en la barra de estado se mostrará el nombre del paquete y la rama a la que pertenece)

Secuencias de escape disponibles

%a Banderas de acción. Indican la operación que se realizará sobre el paquete (ver sección 2.4).
%A Acción. Similar a la anterior, pero más descriptiva ("actualizar", "eliminar", "purgar", etc).
%B El número actual de paquetes rotos.
%c Bandera de estado. Ver sección 2.4 para mayores detalles.
%C Estado actual. Similar a la anterior, pero más descriptiva ("instalado", "purgado", etc).
%d Descripción corta del paquete.
%D Tamaño del paquete.
%H Nombre del equipo (host) en el que aptitude está siendo ejecutado.
%i Prioridad según la configuración de "pinning".
%I Tamaño aproximado que ocupa un paquete instalado.
%m Mantenedor del paquete.
%M Bandera que indica la instalación automática de un paquete (ver sección 3.4).
%n Versión de aptitude.
%N Nombre de la aplicación, que usualmente es "aptitude".
%o Tamaño total de la descarga, en caso de haber paquetes marcados para instalación o actualización.
%p Nombre del paquete seleccionado.
%P Prioridad del paquete ("estándar", "extra", "opcional", entre otras).
%r Número de paquetes instalados que dependen del seleccionado.
%R Versión abreviada de la prioridad.
%s Sección a la que pertenece el paquete seleccionado.
%S Indica si el paquete proviene de una fuente confiable, si no lo es, se muestra el caracter "U".
%t Muestra la rama de Debian en la que se encuentra la versión del paquete seleccionado.
%u Cambio en el uso de disco, en caso de estar programada una instalación, desinstalación o actualización.
%v Versión del paquete instalada actualmente.
%V Versión candidata, indica la versión que será instalada en caso de que el paquete sea marcado para instalación o actualización.
%Z Cambio en el uso de disco, pero de manera individual (por paquete).

4.3.2 Jerarquía de paquetes

Cuando iniciamos aptitude, no vemos una lista plana e inmensa con los paquetes disponibles, sino una estructura en base a niveles por los que podemos desplazarnos, expandir y contraer subcategorías; esta estructura es generada por una política de agrupamiento, conformada por una secuencia de reglas, las cuales se van evaluando ordenadamente.

Para modificar la forma en que aptitude agrupa los paquetes, tenemos que establecer un valor a estas dos variables (en el archivo de configuración de aptitude):

Aptitude::UI::Default-Grouping -> Indica cómo las nuevas Vistas de Paquetes serán creadas.
Aptitude::UI::Default-Preview-Grouping -> Configuración para la Vista de Previsualización.

Otra opción es presionar G desde aptitude, para modificar los valores para la vista actualmente seleccionada. Esto es útil para probar diferentes combinaciones y ver inmediatamente los resultados, aunque estas configuraciones no son guardadas.

Las reglas se representan como una lista separada por comas, donde cada elemento de esta lista consta el nombre de la regla y sus parámetros (esto último dependerá de cada regla).

Las reglas pueden ser terminales o no-terminales. Las no-terminales procesarán paquete a paquete, para después entregarlos a la siguiente regla y repetir el proceso. Las reglas terminales, además de hacer cambios en la estructura jerárquica, darán por terminado el procesamiento del paquete. Si no se especifica ninguna regla terminal, se utilizará una predeterminada, que consiste en generar un elemento por cada paquete.

A continuación describimos algunas de las reglas existentes junto a sus significados:

action -> Los paquetes se agruparán según la acción programada sobre ellos. Un ejemplo de esto es la pantalla previa a la descarga e instalación (Vista Previsualizar).

deps -> Esta opción crea un elemento por paquete, tal como en la configuración predeterminada, pero que se puede expandir para mostrar sus dependencias. Es una regla terminal.

filter(patrón) -> Incluye sólo los paquetes que coincidan con el patrón proporcionado (ver la sección 3.2.1), al menos en una versión.

firstchar -> Agrupa los paquetes según la primer letra de sus nombres.

priority -> Agrupa los paquetes basándose en la priodidad.

section[(modo[,passthrough])] -> Agrupa los paquetes basándose en su sección. El campo Sección de un paquete contiene valores como "admin", "devel","games" cuando pertenecen a la rama principal, es decir, cuando se trata de software libre según las DFSG; por otro lado, valores del tipo "non-free/games" indican la sección, precedida de su condición según las mismas directivas, y las posibles opciones son "contrib" y "non-free". Los modos disponibles son:

none (Ninguno) -> Evalúa el campo sección como un todo, por lo que es posible ver categorías del tipo "contrib/admin". Este es el modo que se usará si utilizamos la regla section sin parámetros.

topdir -> Crea un nivel jerárquico basado en la parte de la sección antes del carácter "/".

subdir -> Crea un nivel jerárquico basado en la parte de la sección después del caracter "/".

subdirs -> Tiene un comportamiento similar a subdir, pero en caso de existir varios divisores "/", creará esa estructura en el árbol de categorías.

La opción passthrough, de estar presente, indica que los paquetes que no contengan un campo Sección real se traspasarán al siguiente nivel de agrupamiento, sin haber sido asignado a una categoría previamente.

status -> Agrupa los paquete según las siguientes categorías: Instalados, No instalados, Actualizaciones de seguridad, Actualizables, Obsoletos y Virtuales. Esta es el primer nivel de agrupación por default en la lista de paquetes.

tag -> Crea un conjunto de categorías basados en los debtags o etiquetas. Si un paquete tiene más de una etiqueta, aparecerá en la sección de cada una de ellas.

task -> Crea un arbol llamado Tareas (ver sección 3.5). Las reglas posteriores crearán categorías al mismo nivel, sin relación con el grupo task.

versions -> Similar a deps, crea un elemento por cada paquete, agregando un subnivel con las versiones disponibles. Es una regla terminal.

4.3.3 Orden de los paquetes

Por defecto, los paquetes son ordenados por nombre. Sin embargo, a veces es útil ordenarlos por otros criterios, y aptitude permite hacer esto con solo modificar la política de ordenación.

Al igual que la política de agrupamiento de la sección anterior, las reglas que indican cómo ordenar los paquete consisten en una lista separada por comas. Cada elemento de la lista es el nombre de la regla de ordenación; si existe igualdad entre paquetes en una regla determinada, se utiliza la siguiente regla para ordenarlos, y así sucesivamente. Colocando una tilde (~) junto al nombre de una regla, invierte el orden en que actúa normalmente. Por ejemplo, priority,~name ordenará los paquetes por prioridad, y para los paquetes que coincidan en este valor, se usará un orden alfabético descendente.

Para cambiar la política de ordenación en la lista actual de paquetes, presiona S. De esta forma se reflejarán los cambios inmediatamente en la lista de paquetes, pero la configuración no se guardará, para lo último será necesario editar el archivo ~/.aptitude/config y agregar la opción Aptitude::UI:: Default-Sorting con el valor deseado. Por ejemplo:

Aptitude::UI::Default-Sorting "installsize";

Las reglas disponibles son:

installsize -> Ordena los paquetes por la cantidad aproximada de espacio que requerirán al ser instalados.

name -> Ordena los paquetes por nombre.

priority -> Ordena los paquetes por prioridad.

version -> Ordena los paquetes por su número de versión.

4.4. Archivos importantes

Veamos ahora algunos de los archivos archivos más importantes de aptitude:

/var/lib/aptitude/pkgstates , en éste archivo se almacenan el conjunto de estados y algunas banderas de los paquetes

/etc/apt/apt.conf, /etc/apt/apt.conf.d/*, ~/.aptitude/config , son los archivos de configuración de aptitude.

/var/log/aptitude , almacen de los log de aptitude

5. Aptitude desde línea de comandos

Aptitude también puede ser utilizado directamente bajo línea de comandos, la nomenclatura a usar sigue el esquena:

aptitude [opciones] (acción)

5.1. Acciones:

aptitude install nombre_paquete: instala el paquete llamado nombre_paquete. Pueden instalarse más paquetes a la vez, simplemente escribiendo sus nombres separados por un espacio (aptitude install paquete1 paquete2 paquete3)

Si el nombre del paquete contiene una tilde (~) o un signo de interrogación (?), será tratado como un patrón de búsqueda y cualquier paquete que cumpla el patrón podrá ser instalado

Si deseamos instalar una versión específica de un paquete debemos añadir = version (ejemplo: aptitude install gimp = 2.4.6-1)

No siempre ésta acción instala un paquete, podemos añadir al nombre del paquete una espeficicación de la acción:

  • aptitude install paquete +: instala el paquete
  • aptitude install paquete + M: instala el paquete y lo marca como instalado automáticamente
  • aptitude install paquete --: elimina el paquete
  • aptitude install paquete _: purga el paquete
  • aptitude install paquete =: bloquea el paquete, cancela cualquier actividad de instalación, actualización o supresión, e impide que éste paquete se actualice automáticamente en el futuro.
  • aptitude install paquete :: mantiene el paquete, cancela cualquier actividad de instalación, actualización o supresión, a diferencia de = no impide que éste paquete se actualice automáticamente en el futuro.
  • aptitude install paquete & M: marca el paquete como instalado automáticamente
  • aptitude install paquete & m: marca el paquete como instalado manualmente

aptitude remove nombre_paquete: elimina el paquete

aptitude purge nombre_paquete: purga el paquete

aptitude hold nombre_paquete: bloquea el paquete

aptitude unhold nombre_paquete: desbloquea el paquete

aptitude keep nombre_paquete: mantiene el paquete

aptitude reinstall nombre_paquete: reinstala el paquete

aptitude markauto nombre_paquete: marca el paquete como instalado automáticamente

aptitude unmarkauto nombre_paquete>: marca el paquete como instalado manualmente

aptitude update: actualiza la lista de paquetes disponibles en nuestros repositorios

aptitude safe-upgrade: actualiza los paquetes instalados a su versión más reciente. Puede ocurrir que se instalen nuevos paquetes para resolver dependencias a menos que indiquemos lo contrario (orden --no-new-installs), pero no elimina paquetes, sólo actualiza los instalados e instala nuevos para resolver dependencias.

A veces, para poder actualizar un paquete es necesario eliminar otro, en éstos casos aptitude safe-upgrade no es útil y debemos recurrir a:

aptitude full-upgrade: realiza la actualización de los paquetes que tengamos instalados a su versión más reciente, la supresión y/o la instalación de nuevos paquetes, según sea necesario. Esta opción es menos conservadora que la anterior y, por tanto, tenemos más posibilidades de que realice acciones no deseadas, por tanto es muy recomendable revisar que va ha hacer antes de aprobarlo. Es capaz, no obstante, de tratar paquetes que usando safe-upgrade no serían actualizables.

aptitude keep-all: Cancela todas las acciones programadas en todos los paquetes, limpia las marcas de instalación, elimincación o actualización.

aptitude forget-new: olvida los paquetes marcados como nuevos (equivalente a pulsar la tecl f en la interfaz de aptitude).

aptitude search texto: busca un paquete que contenga el texto en el nombre o descripción

aptitude show nombre_paquete: Muestra información detallada sobre uno o varios paquetes, sí contiene una tilde (~) o un signo de interrogación (?), será tratado como un patrón de búsqueda y mostrará todas las palabras clave.

aptitude clean: Elimina todos los archivos .deb descargados previamente (normalmente en /var/cache/apt/archives).

aptitude autoclean: borra paquetes obsoletos dejando los actualizados

5.2. Opciones:

Las opciones se utilizan para modificar el comportamiento de las acciones descritas más arriba. Si bien todas las opciones serán aceptadas para todos los comandos, algunas opciones no se aplican a determinados comandos.

-D : Para los comandos con capacidad de instalar o eliminar paquetes, muestra una breve explicación de instalaciones automáticas y de eliminaciones.

-d : Descarga los paquetes, pero no instala o elimina nada. De forma predeterminada, los paquetes se almacenan en /var/cache/apt/archives.

-f : Intenta arreglar dependencias de paquetes rotos

-R : No trata los paquetes recomendados como dependencias al instalar nuevos paquetes

-r : Trata los paquetes recomendados como dependencias al instalar nuevos paquetes

-s : Simula las acciones pero no las ejecuta. No requiere privilegios de root

-t [distrib] : Establece la distribución desde la que se instalan los paquetes. Por ejemplo: aptitude-t experimental ... instalación de paquetes de la distribución experimental a menos que especifique lo contrario.

-V : nos muestra la versión de los paquetes que se van a instalar

-v : Muestra información extra (puede darse más de una vez)

-p : Siempre pide confirmación de las acciones

-y : Supone que la respuesta a preguntas simples del tipo sí/no es «sí»

-F formato : Especifica el formato para mostrar los resultados de las búsquedas, lea el manual

-O orden : Especifica como se deben ordenar los resultados de la búsqueda, lea el manual

-w ancho : Especifica el ancho del visor para dar formato a los resultado de la búsqueda

-D : Muestra las dependencias de los paquetes cambiados automáticamente.

-Z : Muestra el cambio del tamaño instalado de cada paquete.

-S fnombre : lee la información de estado extendida de aptitude de fnombre.

-u : Descarga una nueva lista de paquetes al arrancar.

-i : Realiza una instalación al arrancar.

Referencias

Tomado de