Particularidades de APT

Se conoce como APT al front-end más popular para el gestor de paquetes de Debian dpkg. Eso quiere decir que actúa sobre el gestor de paquetes añadiendo funcionalidades muy interesantes. Entre otras cosas, podemos instalar paquetes sin preocuparnos de sus dependencias, pues APT se encargará de buscar los paquetes que necesitamos para poder utilizar aquello que queremos instalar, instalándolos de forma automática. También nos permite hacer actualizaciones automáticas de nuestro sistema, actualizar nuestra distribución a una versión superior, y buscar un paquete determinado según una cadena de búsqueda. Hasta aquí tenemos las características más conocidas de APT (los famosos apt-get install, apt-get upgrade, apt-get dist-upgrade, y las múltiples opciones de apt-cache).
APT dispone de muchas funcionalidades que las anteriormente mencionadas, desde las más evidentes y que se pueden descubrir simplemente echándole un ojo a su ayuda, hasta otras más enrevesadas. En este documento me propongo listar una serie de funcionalidades de APT que a mí me han sido útiles o me han parecido curiosas.

APT has cow powers!

Empezamos con una cosa curiosa. Si observamos la ayuda de apt-get (simplemente ejecutando el comando sin ningún parámetro o comando adicional), al final de la misma podremos leer la misteriosa frase: This APT has Super Cow Powers. Es más, si ejecutamos apt-get moo veremos un curioso mensaje relacionado con las vacas. Este mensaje curioso, según los desarrolladores de Debian, hacen referencia a unas nuevas funcionalidades añadidas a APT en su versión 0.5.0 y que se pueden consultar en su página man (http://lists.debian.org/deity/2003/deity-200307/msg00140.html, al final). Yo he consultado la página man incluida en Sarge y no he podido descubrir cuáles son esos poderes.

Descargar paquetes sin instalarlos

Al realizar un apt-get install, upgrade o dist-upgrade, los paquetes deb no se instalan o actualizan inmediatamente, sino que primero se obtienen del medio especificado en /etc/apt/sources.list y se almacenan en /var/cache/apt/archives/. Después de esto se emplea dpkg para su instalación o actualización. En el caso de grandes actualizaciones (de cientos de megas o paquetes) puede darse el caso de que tan solo deseemos dejar el ordenador encendido mientras éste se descarga los paquetes, para atender más tarde a las configuraciones automáticas o los mensajes de error. Así podemos dejar el ordenador toda la noche descargando paquetes (algunos todavía usamos modems) y a la mañana siguiente apagarlo, con la seguridad de que cuando lo volvamos a encender todas nuestras aplicaciones seguirán funcionando como hasta entonces, esperando el momento en que decidamos realizar la actualización en sí misma. Para ello, sencillamente debemos utilizar la opción -d. Por ejemplo, podemos ejecutar apt-get dist-upgrade -d para bajar los paquetes deb y dejarlos almacenados en la localización antes indicada, y más tarde, para hacer efectiva la actualización, ejecutar de nuevo apt-get dist-upgrade, esta vez sin el -d.

Mezclar ramas

A la hora de instalar nuestra Debian, debemos elegir una rama, ya sea la stable, testing o unstable. En un principio esta decisión puede parecer que marcará nuestros destinos en el futuro, de tal forma que si usamos, por ejemplo, la rama testing, y deseamos la última versión de una aplicación, deberemos esperar a que pase de unstable a testing, momento en que seguramente ya estará obsoleta.
Mediante APT es posible mezclar ramas. Esto es interesante en determinadas ocasiones. Por ejemplo, podríamos desear tener un sistema robusto y estable (rama stable), y al mismo tiempo, utilizar la versión de alguna aplicación puntual incluida en unstable (y que añade funcionalidades que la versión de stable no tiene). Lo primero que deberemos hacer es incluir las fuentes de las dos ramas que queremos utilizar en /etc/apt/sources.list, como en el siguiente ejemplo:

# Debian Woody
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://http.us.debian.org/debian stable main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free

# Debian sid
deb http://ftp.se.debian.org/debian/ sid main contrib non-free
deb-src http://ftp.se.debian.org/debian/ sid main contrib non-free

deb http://ftp.se.debian.org/debian-non-US sid/non-US main contrib non-free
deb-src http://ftp.se.debian.org/debian-non-US sid/non-US main contrib non-free

Lo siguiente será editar o crear el fichero /etc/apt/apt.conf, e indicar cual es la rama que deseamos utilizar por defecto, como en el siguiente ejemplo:

APT::Default-Release "stable";

A partir de este momento, cualquier paquete que instalemos o actualicemos provendrá de la rama stable, a menos que especifiquemos lo contrario explícitamente, como por ejemplo: apt-get install -t unstable paquete. Incluso, si deseamos instalar un paquete, y este no se encuentra en stable, se buscará automáticamente en unstable. Pero cuidado, si el paquete que deseamos instalar de unstable tiene dependencias, todas ellas deberán también ser instaladas.

Actualizaciones selectivas

En el caso de que, siguiendo los pasos del apartado anterior, hayamos instalado un paquete unstable en nuestro sistema stable, deberíamos editar el fichero /etc/apt/preferences, y añadir algo similar a lo siguiente para cada uno de estos paquetes:

Package: PAQUETE
Pin: release a=unstable
Pin-Priority: 1001

Cuanto mayor sea el Pin-Priority mayor será la prioridad para instalar el paquete de la rama especificada frente al mismo paquete en otras ramas de menor prioridad.

Versiones de los paquetes en ramas distintas

Lo explicado en el punto anterior tiene un problema principal... cuando busquemos un paquete con apt-cache search nos saldrán los paquetes de las dos ramas, y seremos incapaces de decidir cuál instalar. Esto se puede resolver mediante un apt-get install apt-show-versions. Ahora, si ejecutamos apt-show-versions -a -p paquete podrás ver la versión del paquete en cada una de las ramas, así como saber cuál es la que tenemos instalada. Finalmente, con apt-cache y la opción -a podremos ver también las versiones.

Repootorios no oficiales

En /etc/apt/sources.list indicamos las fuentes o repositorios de donde obtener nuestros paquetes, comunmente direcciones FTP en Internet. En la página del proyecto Debian podemos obtener un listado de los repositorios oficiales, de donde podemos obtener los paquetes pertenecientes a las distintas ramas de la distribución. En ciertas ocasiones, personas ajenas al proyecto Debian deciden crear un repositorio propio desde donde obtener ultimísimas versiones que no aparecerán hasta dentro de un tiempo en la distribución oficial (es el caso de la versión 3 de KDE actualmente). Basta con añadir a nuestro sources.list la dirección del repositorio, hacer un apt-get update, e instalar dichos paquetes. Una gran ayuda la podemos encontrar en http://www.apt-get.org, un listado de los principales repositorios no oficiales, donde podremos encontrar cosas como las últimas versiones de KDE o GNOME, buscando incluso por paquetes concretos.

[VOLVER]