Tutorial de Aptitude
Preámbulo
Éste hilo está dirigido a la consecución del Tutorial sobre Aptitude más completo en español. Basado en la documentación oficial de Daniel Burrows, nace de un primer artículo introductorio a la interfaz de aptitude y de la suma de intereses y aportaciones de Azazel y mía para lograr tener una referencia mas completa en español, como el apt-howto, de Aptitude.
En este hilo podréis poner vuestros comentarios al mismo, así como realizar cualquier aportación que consederéis útil y enriquecedora, dichas aportaciones (tras su revisión) se irán añadiendo como nuevos apartados al artículo principal.
NOTA: Para poder realizar aportaciones al tutorial deberéis indexar y estructurar vuestra aportación de manera acorde con el resto del artículo.
Así y tras un tiempo de revisión del documento original por parte del resto de moderadores y colaboradores de esdebian os presentamos el tutorial de aptitude:
Ésta obra es un derivado de la documentación oficial de Daniel Burrows, que puedes encontrar aquí
Copyright © 2008 por Azazel y Quimicefa
This manual is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Í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
Referencias
1. Introducción
Aquellos usuarios que conozcan su uso y estén acostumbrado a utilizar aptitude echaran en falta muchas cosas, éste pequeño artículo está fundamentalmente dirigido a aquellas personas que no sepan como utilizar aptitude desde su interfaz y pierdan un poco el miedo a utilizarlo, la idea es proporcionar una pequeña base a partir de la cual puedan ampliar el conocimiento y la seguridad en su manejo.
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 éste artículo nos vamos a centrar en su interfaz.
2. Aptitude
2.1. Entremos en faena ...
Ejecutamos aptitude con:
# aptitude
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.
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
- A continuación tenemos un espacio negro, donde encontraremos una lista de todos los paquetes disponibles, ordenados por grupos de paquetes
- Abajo tenemos una barra azul, debajo de la cual veremos mensajes informativos, es el área de información.
2.3. Moverse
* Para movernos por los menús de aptitude:
- Abrir el menu: 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 menu: con la tecla Enter
- Cerrar el menu: 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". Pulsándo "?" 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 F6 y F7 (siguiente y previa, respectivamente), con "q" la cerramos y volvemos a la anterior.
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.
* 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). Pulsado "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 prorcionan 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 satisfechos.
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 de 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 ése 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.
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 que 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?
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.
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.
^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 "kde" (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:
- En primer lugar, en la parte superior del área azul se muestra el número de paquetes rotos
- En segundo lugar, la mitad inferior de la pantalla cambia para describir los paquetes rotos que están relacionadas con el paquete actualmente destacado,
- En tercer lugar, 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.
¿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:
- 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 "Xcfe" 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 descubriendo poco a poco..... y si te aburres.... juega al 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
- El manejo de dependencias
- Otras opciones de miscelánea
* Modificar el manejo de dependencias de aptitude
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):
[X] Resolver automáticamente las dependencias de un paquete cuando éste se seleccione
[X] Arreglar los paquetes rotos automáicamente antes de instalar o eliminar
[X] Instalar los paquetes Recomendados de forma automática
[X] Eliminar paquetes no usados automáticamente
Nos moveremos con las fechas "arriba" y "abajo" y marcamos/desmarcamos con la barra espaciadora las opciones a nuestro gusto.
* Miscelánea. Otras opciones de configuración
Dentro del Menú Opciones/Miscelánea podremos modificar algunos comportamientos de aptitude, como por ejemplo:
[ ] Actualizar automáticamente los paquetes instalados
[ ] Eliminar los ficheros de paquetes obsoletos después de descargar nuevas listas de paquetes
[X] Mostrar una previsualización de lo que se va a hacer antes de hacerlo
[ ] Olvidar qué paquetes son "nuevos" al actualizar la lista de paquetes
[ ] Olvidar qué paquetes son "nuevos" al instalar o eliminar paquetes
[X] Avisar cuando se intente realizar una acción sin ser el administrador
- En que fichero se registran las acciones que realiza aptitude (por defecto en /var/log/aptitude)
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 encotramos con:
1. Información de la vesió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.
Aptitude::UI:: Package-Status-Format
Valor predeterminado: "%d"
Corresponde a la línea 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.
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.
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 caracter "/".
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.
- - - - -
REFERENCIAS
man aptitude
aptitude user's manual:
http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/index.html
/usr/share/doc/aptitude/html/en/index.html (proporcionado por el paquete aptitude-doc-en)
Daniel Burrows
Más informacion sobre debtags: http://debtags.alioth.debian.org/paper-debtags.html
- Inicie sesión o regístrese para enviar comentarios
- 4393 lecturas


¿No sería más lógico publicar esto como artículo? ¿O lo has hecho así para que la gente aporte comentarios, cambios y mejoras?
¿No sería más lógico publicar esto como artículo?
¿Y le preguntas algo así a quimicefa?
Bueno, estos días ya hemos comentado al respecto, pues ahora con la posibilidad de editar artículos ya se podrá publicar sin que esto limite la facilidad para mantenerlo. Además, dentro de poco se estrenará el wiki, que seguramente sea el medio más deseable.
¿O lo has hecho así para que la gente aporte comentarios, cambios y mejoras?
Ese era el objetivo de publicarlo inicialmente aquí, pero como ya habrás visto, no funcionó.
Saludos.
Pues sí, como bien dice Azazel, ya hemos comentado entre nosotros el pasarlo a artículo en portada, el retraso se debe a la típica sobrecarga de trabajo de éstos días y unas capturas de aptitude que estamos haciendo para dejarlo más ¿"amigable"?.
La duda que tenemos era fundamentalmente si meterlo ya en portada como artículo o esperar y pasarlo a la/el wiki
P.D.: Por cierto Azazel, come más que te estás quedando en los huesos
P.D.2: como cambies de avatar me jodes la gracia!!