Debian: Manipulación de paquetes

Vamos a explicar varios usos básicos de los paquetes de intalación de la distribución Debian y sus derivados.

Instalación básica de un archivo local

Los programas en Debian se distribuyen en forma de paquetes deb. Los paquetes deb son similares a los RPM de Fedora/RedHat que contienen todo lo necesario para instalar el programa y tienes las dependencias necesarias para instalar todo lo necesario. Para instalar un programa en paquete deb escribimos:

dpkg -i programa.deb

Listar el contenido de un paquete

dpkg nos proporciona un método sencillo de comprobar el contenido de un paquete:

dpkg -L programa
Es habitual que el paquete tenga tantos archivos que nos sea difícil encontrar el que nos

interesa. En ese caso podemos utilizar less para tener un mejor control del resultado.

dpkg -L programa | less

¿A qué paquete pertenece un archivo?

En ocasiones podemos encontrarnos en el caso contrario de la sección anterior. Podemos tener un archivo y querer saber a qué paquete pertenece. Una vez más dpkg acude al rescate:

dpkg -S vimrc

Listar los paquetes instalados

Supongamos que queremos reinstalar el sistema operativo y necesitamos saber los paquetes que teníamos instalados para volver a instalarlos más tarde. Una opción es utilizar el comando:

dpkg -l

Lo mismo que antes el listado puede ser muy largo y lo mejor es pasar la salida al less.

dpkg -l | less

o bien un listado más simple:

dpkg --get-selections

Un truco con este último comando es replicar los paquetes instalados en un server en otro de la siguiente forma. Primero sacamos un listado de los paquetes instalados en el servidor origen:

dpkg --get-selections > paquetes_instalados

Luego en el servidor destino hacemos lo contrario, obtener el listado de paquetes a instalar, actualizar y por último instalar lo marcado con --set-selections:

dpkg --set-selections < paquetes_instalados

sudo aptitude update

sudo dselect

Otra opción para replicar los paquete instalados en un servidor a otro vía CD es usar la aplicación aptoncd, que hace una imagen con las aplicaciones que tenemos instaladas en un CD para poder llevarlo a otro server y poder restaurar e instalar dichas aplicaciones.

Reconfigurar un paquete

Una de las fases a ejecutar a la hora de instalar un paquete es la de configuración, en la que se hacen cosas como iniciar o parar servicios, crear archivos de log, etc. En ocasiones podemos querer reconfigurar un paquete sin necesidad de reinstalarlo completamente. Para ello utilizaríamos:

dpkg-reconfigure paquete

Buscar paquetes

En ocasiones necesitamos un cierto software que realice una determinada tarea, pero no conocemos ninguno. Si necesitáramos un reproductor de FLAC, por ejemplo, podríamos utilizar la opción search de aptitude para buscar paquetes con el texto flac en el nombre o la descripción:

aptitude search flac

Expresiones regulares y aptitude

Para hacer búsquedas utilizamos la condición '~n' (n de name, nombre) para buscar en los nombres de los paquetes aquellos que coincidan con la expresión regular que le sigue. Por ejemplo para encontrar paquetes que contengan el texto 'sdl' en su nombre escribiríamos:

aptitude search ~nsdl

Para encontrar todos aquellos paquetes cuyo nombre termine con 'sdl' usaríamos

aptitude search ~nsdl$

La condición ~n es la condición de búsqueda por defecto para aptitude, por lo que no es necesario especificarla y podríamos haber sustituido los comandos anteriores por:

aptitude search sdl
y
aptitude search sdl$

Sin embargo para el caso de install, si no especificáramos la condición de búsqueda:

sudo aptitude install sdl

aptitude sólo nos informaría de que no existen paquetes con ese nombre, y listaría los paquetes que coinciden con la expresión, mientras que si especificamos la condición de búsqueda:

sudo aptitude install ~nsdl

aptitude da por sentado que sabemos lo que hacemos y procede a instalar todos los paquetes que coincidan con la expresión.

Otras condiciones de búsqueda interesantes son:

  • ~b para encontrar paquetes rotos
  • ~d para buscar una expresión regular en las descripciones de los paquetes
  • ~i para buscar paquetes instalados.

Impedir que un paquete se actualice

Si necesitas que un paquete se mantenga en una determinada versión, por ejemplo porque se elimine una característica que te gustaba, puedes utilizar la opción hold:

aptitude hold paquete

Actualizar

Tanto aptitude como apt ofrecen dos maneras de actualizar el sistema, upgrade y dist-upgrade. upgrade actualizará todos los paquetes a sus nuevas versiones, pero no tocará nada que requiera instalar nuevos paquetes o eliminarlos; ese es el cometido de dist-upgrade.

Información sobre un paquete

Cuando necesites saber la versión de un paquete, quién lo mantiene, si está instalado en el sistema actualmente, que es lo que hace se recurre a la opción show:

aptitude show paquete

Extraer el contenido de un DEB sin instalarlo

Para extraer el contenido de un paquete .deb sin tener que instalarlo:

dpkg-deb -x nombre_del_paquete.deb directorio_destino

Retro

Lugares

Redes

Sistemas

Varios