11 cosas que necesitas saber para convertirte en un experto de apt

(19 comentarios)

APT es el acrónimo de Advanced Packaging Tool, el sistema de gestión de paquetes utilizado en Debian y sus derivados, como Ubuntu. Tanto aptitude como Synaptic o Adept se basan en este sistema. En este artículo veremos algunas de sus características más importantes.

dpkg

Este programa es la base en la que se apoya el sistema de gestión de paquetes de Debian / Ubuntu. Es una herramienta de bajo nivel, aunque nada nos impide utilizarla directamente para gestionar nuestros paquetes. dpkg permite instalar y desinstalar programas en forma de paquetes deb, así como consultar información relativa a dichos paquetes

Instalación básica de un archivo local

Algunos programas se distribuyen en forma de paquetes deb. Los paquetes deb son similares a los RPM de Fedora o los msi de Windows; contienen todo lo necesario para instalar el programa. Para instalar un programa distribuido en forma de paquete deb escribimos:

dpkg -i programa.deb

[Pulsa para continuar]

Últimos paquetes instalados

(3 comentarios)

Puede que alguna vez os hayáis encontrado con la necesidad de saber el nombre de las últimas aplicaciones que instalasteis, borrasteis, o actualizasteis, o bien las dependencias que se instalaron, desinstalaron o actualizaron.

Aptitude, el programa que suelo recomendar para manejar paquetes, crea un archivo muy cómodo de leer en /var/log/aptitude con este aspecto:

[Pulsa para continuar]

aptitude, safe-upgrade y full-upgrade

(6 comentarios)

Si utilizáis aptitude os habréis fijado que en la última versión el comando upgrade está obsoleto. El típico sudo aptitude upgrade ha sido sustituido por sudo aptitude safe-upgrade, y de forma similar, sudo aptitude dist-upgrade por sudo aptitude full-upgrade.

No os preocupéis porque es lo mismo de siempre pero con otro nombre:

  • upgrade = safe-upgrade
  • dist-upgrade = full-upgrade

Echando un vistazo al man de aptitude vemos que safe-upgrade actualiza todos los paquetes que pueda sin tener que borrar otros paquetes o instalar otros nuevos. Cuando sea necesario borrar o instalar un paquete para actualizar una aplicación, tendremos que utilizar full-upgrade.

full-upgrade es más agresivo: instalará y borrará todos los paquetes que haga falta hasta que se resuelvan todas las dependencias. Como implica los nombres de ambos comandos, full-upgrade no es del todo seguro, así que hemos de tener cuidado al utilizarlo.

Conclusión: utiliza siempre safe-upgrade a menos que te sientas aventurero.

Ahora, como a muchos no os hará gracia tener que escribir aún más texto, os remito a mis entradas sobre alias en Linux, para poder sustituir un comando por el texto que queramos, y sobre cómo activar el autocompletado con alias para aptitude, de forma que se complete el nombre de los paquetes al pulsar Tabulador.

Firmas gpg y apt / aptitude

(3 comentarios)

Puede que alguna vez os hayáis encontrado con un mensaje parecido al siguiente al hacer un apt-get update o aptitude update después de añadir un nuevo repositorio a /etc/apt/sources.list

W: GPG error: http://pkg-voip.buildserver.net feisty Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 2A5E3A5A52ABFCB1
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas

Se trata de un warning que nos avisa de que el archivo Release está firmado de forma que se pueda verificar el origen de los paquetes de ese repositorio usando GPG. Podemos por tanto asegurarnos de que los paquetes que instalamos son paquetes que ha subido el administrador del repositorio y que no han sido modificados por nadie más. Imaginaos qué ocurriría si un cracker lograra acceder a uno de los repositorios de vuestro sources.list y sustituyera los paquetes por otros de dudosas intenciones…

[Pulsa para continuar]

¿Cuáles son los paquetes más utilizados?

(6 comentarios)

Existe un proyecto llamado Ubuntu Popularity Contest mediante el cual se toman estadísticas de los paquetes más utilizados en las máquinas que corren Ubuntu, información que puede emplearse después para tomar decisiones como qué paquete debería incluirse en el CD o qué paquetes deberían instalarse automáticamente.

Si queréis participar enviando la información de vuestra máquina periódicamente de forma anónima basta con que instaléis el paquete popularity-contest

sudo aptitude install popularity-contest

que establecerá la tarea cron correspondiente.

Si tenéis curiosidad, todos los datos se pueden consultar libremente en Ubuntu Popularity Contest.

Estados de los paquetes en aptitude

(5 comentarios)

Estas son las abreviaturas utilizadas para los distintos estados de los paquetes en aptitude.

  • i – instalado.
  • c – se ha desinstalado el paquete, pero no los archivos de configuración (configuration).
  • p – se borró tanto el paquete como los archivos de configuración, o bien nunca se instaló (purge)
  • v – virtual.
  • B – dependencias rotas (Broken).
  • u – desempaquetado pero no configurado (unpacked).
  • C – no se terminó de configurar el paquete (half-Configured)
  • H – no se terminó de instalar (Half-installed)

Mostrar los errores críticos antes de instalar un paquete

(8 comentarios)

¿Te gustaría que te informaran de si existen errores críticos en un paquete que vas a instalar o actualizar antes de hacerlo? Ese es el cometido del paquete apt-listbugs.

Basta con instalar el paquete

sudo aptitude install apt-listbugs

y cada vez que instalemos o actualicemos un paquete con apt-get o aptitude el programa buscará errores críticos en la nueva versión e informará al usuario si se encuentra alguno.

Expresiones regulares y aptitude

(1 comentario)

Seguramente alguna vez os hayáis encontrado en una situación en la que necesitabais instalar varios paquetes que comenzaran con el mismo nombre o quizás todos los paquetes que contuvieran un cierto texto. O quizás buscabais todos los paquetes que contuvieran algún término en su descripción. Esto y mucho más podemos lograrlo de forma cómoda utilizando expresiones regulares.

En aptitude los patrones de búsqueda se construyen con una o más condiciones. Cada condición comienza con el carácter ‘~’ y un carácter que identifica el tipo de condición, seguido de un texto alternativo que pudiera ser necesario para esa condición.

[Pulsa para continuar]

Alias para aptitude con autocompletado

(14 comentarios)

Los comandos para buscar, instalar y desinstalar paquetes suelen estar entre los más utilizados. Teniendo en cuenta que se tratan de cadenas bastante largas, es útil crear un alias, de forma que podamos escribir algo como

install konqueror

en lugar de

sudo aptitude install konqueror

Crear los alias es tan sencillo como editar el archivo .bashrc

gedit ~/.bashrc

y añadir las siguientes líneas

alias update=”sudo aptitude update”
alias upgrade=”sudo aptitude upgrade”
alias install=”sudo aptitude install”
alias purge=”sudo aptitude purge”
alias show=”sudo aptitude show”
alias search=”sudo aptitude search”

Ahora bien, si escribimos algo como aptitude install kon y pulsamos Tab, bash utiliza la característica de autocompletado para mostrarnos los nombres de los distintos paquetes que comienzan con kon, cosa que no ocurriría con nuestros alias. Para que bash sepa cómo autocompletar los parámetros de nuestros “nuevos comandos”, tendremos que añadir la siguiente línea a .bashrc:

complete -F _aptitude $default install purge show search

Esto indica a bash que debe utilizar la función _aptitude, definida en el archivo /etc/bash_completion, para completar los comandos install, purge, show y search.