Pequeña Guía para APT y 'sources.list'

¿Que quiere decir APT?

APT es el mnemotécnico para la Herramienta de Empaquetamiento Avanzado (Advanced Packaging Tool) y es una colección de programas y scripts que ayudan tanto al administrador del sistema (en este caso, root) con la instalación y gestión de archivos-deb, como también informa al mismo sistema para saber qué está instalado.

sources.list

El sistema "APT" necesita un archivo de configuración que contenga información acerca de las localizaciones de paquetes instalables y actualizables que es normalmente llamado sources.list.

Las fuentes están en un directorio o carpeta llamado:
/etc/apt/sources.list.d/

Dentro este directorio hay 2 archivos llamados:
/etc/apt/sources.list.d/debian.list y
/etc/apt/sources.list.d/sidux.list

Esto tiene la ventaja de cambiar más rápidamente los espejos (está automatizado), y lo hace más seguro para reemplazar listas.

También puede agregar su propios archivos /etc/apt/sources.list.d/*.list

Todos los ISOs de sidux tienen los siguientes repositorios preseleccionados:

#sidux
# Free University Berlin/ spline (Student Project LInux NEtwork), Germany
deb ftp://ftp.spline.de/pub/sidux/debian/ sid main fix.main
#deb-src ftp://ftp.spline.de/pub/sidux/debian/ sid main fix.main

Se pueden encontrar entradas adicionales para necesidades no-libres en nuestras páginas web, siempre actualizadas sidux.list y debian.list:

#Debian
# Unstable
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free

# Testing
#deb http://ftp.us.debian.org/debian/ testing main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

# Experimental
#deb http://ftp.us.debian.org/debian/ experimental main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ experimental main contrib non-free

NOTA: En este ejemplo, el ftp.us indica que está usando repositorios desde los Estados Unidos de América. Puede editar este archivo, como raíz, para usar repositorios más cerca físicamente de usted, simplemente cambiando el país, por ejemplo, cambie ftp.us.* a ftp.es.* ó ftp.ar.*. Muchos países tienen espejos locales que ayudan a conservar el ancho de banda (bandwidth) y a mejorar las velocidades de descarga.

Lista de los servidores Debian y del estado actual de los espejos.

Para poder conseguir información actualizada sobre los paquetes, el sistema APT utiliza una base de datos. Esta base de datos contiene el paquete pero también los demás paquetes que necesita para poder funcionar (las llamadas dependencias). El programa apt-get usa esta base de datos cuando instala los paquetes escogidos para resolver todas las dependencias, y así garantiza que el paquete escogido funcione. La actualización de esta base de datos se realiza con la orden: apt-get update.

# apt-get update
	(lo que retorna:)
Get:1 http://sidux.com sid Release.gpg [189B]
Get:2 http://sidux.com sid Release.gpg [189B]
Get:3 http://sidux.com sid Release.gpg [189B]
Get:4 http://ftp.de.debian.org unstable Release.gpg [189B]
Get:5 http://sidux.com sid Release [34.1kB]
Get:6 http://ftp.de.debian.org unstable Release [79.6kB]

Instalación de un nuevo paquete

Presumiendo que la base de datos de Apt está actualizada y se conoce el nombre del paquete, entonces el siguiente comando instalará un paquete llamado "qemu" y todas sus dependencias: (más adelante se explica cómo buscar y encontrar paquetes.)

# apt-get install qemu
Leyendo listas de paquetes... Listo
Construyendo el árbol de dependencias... Listo
Los siguientes paquetes extras serán instalados:
  bochsbios openhackware proll vgabios
Paquetes recomendado:
  debootstrap vde
Los siguientes paquetes NUEVOS serán instalados:
  bochsbios openhackware proll qemu vgabios
0 actualizado, 5 nuevamente instalado, 0 para quitar y 20 no actualizado.
Necesito bajar 4152kB de archivos.
Después de desempacar 11.9MB de espacio adicional será usado.
Desea continuar [S/n]?

Eliminar un paquete

De forma similar, no sorprenderá que la siguiente orden desinstale un paquete (sin embargo, no quitará las dependencias):

apt-get remove gaim
Leyendo listas de paquetes... Listo
Construyendo el árbol de dependencias... Listo
Los siguientes paquetes serán REMOVIDO:
  gaim gaim-irchelper
0 actualizado, 0 nuevamente instalado, 2 para quitar y 310 no actualizado.
Necesito bajar 0B de archivos.
Después de desempacar 4743kB de espacio será liberado.
Desea continuar [S/n]?
(Leyendo base de datos ... 174409 archivos y directorios actualmente instalados.)
Removiendo gaim-irchelper ...
Removiendo gaim ...

En este último caso los archivos del paquete 'gaim' (básicamente los que guardan la configuración) no fueron borrados del sistema. Serán utilizados si vuelve instalar el mismo paquete de nuevo y se utilizará la misma configuración.

Si también desea quitar los archivos de configuración, ejecute este comando:

apt-get --purge remove gaim

Leyendo listas de paquetes... Listo
Construyendo el árbol de dependencias... Listo
Los siguientes paquetes serán REMOVIDOS:
  gaim*
0 actualizado, 0 nuevamente instalado, 1 para quitar y 309 no actualizado.
Necesito bajar 0B de archivos.
Después de desempacar 4678kB de espacio será liberado.
Desea continuar [S/n]? S
(Leyendo base de datos ... 174405 archivos y directorios actualmente instalados.)
Removiendo gaim ...
Purgando archivos de configuración de gaim ...
#

Note el simbolo * despueś del nombre del paquete en la salida de apt. El asterisco indica que los archivos de configuración también serán eliminado.

Revertir (downgrade) o conservar (hold) un paquete

A veces es necesario revertir a una versión previa de un paquete o hacer que no se actualice, debido a un fallo mayor en la versión que acaba de instalar.

Retener (Hold) un paquete

echo package hold|dpkg --set-selections

Para quitar un "Hold" de un paquete

echo package install|dpkg --set-selections

Para listar paquetes en "Hold" (conservados):

dpkg --get-selections | grep hold

Revertiendo paquetes

Este ejemplo utilizará kmahjongg:

  1. activar las fuentes de "testing" en /etc/apt/sources.list.d/debian.list 
    (borrar el # para que el script pueda leer la línea)
    deb http://ftp.nl.debian.org/debian/ testing main contrib non-free
  2. apt-get update
  3. apt-get install kmahjongg/testing 
  4. Ponga el paquete nuevamente instalado en "hold" con:
    echo kmahjongg hold|dpkg --set-selections
  5. a continuación comente la fuente "testing" en /etc/apt/sources.list.d/debian.list 
  6. apt-get update

Cuando desee actualizar a la versión más reciente, haga esto:

echo kmahjongg install|dpkg --set-selections
apt-get update
apt-get install kmahjongg

Actualización de todo un sistema instalado - dist-upgrade - Vista general

Actualizar todo el sistema completo se hace a través de dist-upgrade. Siempre debe revisar los Current Warnings en la página web principal de sidux , y allí revise las advertencias acerca de los paquetes que su sistema va a actualizar con dist-upgrade. Si necesita retener (hold) un paquete, vea la referencia en Revertir y mantener un paquete

El uso de 'upgrade' solamente no está recomendado en 'debian sid'.

Frecuencia de dist-upgrade

Realizar el dist-upgrade tan rutinamente como pueda, idealmente una vez a la semana o cada dos semanas está bien, y como mínimo una vez al mes para estar seguro. Un dist-upgrade realizado cada 2 ó 3 meses es considerado como el limite de seguridad. Para paquetes no-estándar, o autocompilados, tiene que tener más cuidado con la actualización, porque pueden causar fallos en su sistema debido a incompatibilidades.

Después de actualizar la base de datos puede determinar qué paquetes tienen versiones más nuevas: (primero tiene que instalar: apt-show-versions)

apt-show-versions -u
libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3
passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6
teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1
libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3.........

La actualización de un paquete en particular con todas sus dependencias, por ejemplo, "gcc-4.0", puede ser realizado con:

# apt-get install gcc-4.0
Leyendo listas de paquetes... Listo
Construyendo el árbol de dependencias... Listo.
gcc-4.0 ya es la versión más nueva.
0 actualizado, 0 nuevamente instalado, 0 para quitar y 295 no actualizado.
#

Solamente bajar sin instalar

Una opción poco conocida y muy util es la bandera "-d" para revisar qué paquetes están involucrados:

apt-get update && apt-get dist-upgrade -d

El -d permite bajar los paquetes sin instalarlos, mientras sigue en X desde una consola. Además le permite realizar el dist-upgrade en init 3 en el momento que más le convenga. También le permite revisar las advertencias en la lista, porque, sabiamente, le da la opción de proceder o abortar el proceso.

apt-get dist-upgrade -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  elinks-data
The following packages have been kept back:
  git-core git-gui git-svn gitk icedove libmpich1.0ldbl
The following packages will be upgraded:
  alsa-base bsdutils ceni configure-ndiswrapper debhelper
  discover1-data elinks file fuse-utils gnucash.........
35 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 23.4MB of archives.
After this operation, 594kB of additional disk space will be used.
Do you want to continue [Y/n]?Y 

Y se bajará los paquetes actualizados sin tocar el sistema instalado.

Después de que el 'dist-upgrade -d' haya bajado los paquetes y desee completar el dist-upgrade, ya sea inmediatemente o posteriormente, por favor, siga estas instrucciones:

dist-upgrade - Pasos a realizar

ABSOLUTAMENTE NUNCA debe realizar un "upgrade" ni un "dist-upgrade" mientras esté en el ambiente gráfico X. Siempre revise la sección "Current Warnings" en la página web principal de sidux. Estos avisos están allí por razón de la naturaleza de "Debian sid/unstable" y porque se actualiza diariamente.

Salir de KDE.
Entre el modo texto con Ctrl+Alt+F1;
entonces haga login como "root" y después teclee "init 3";
apt-get update && apt-get dist-upgrade;
apt-get clean
init 5 && exit

NUNCA HAGA el DIST-UPGRADE (ni UPGRADE) con ADEPT o SYNAPTIC

Si no va a "init 3", bueno, lo sentimos, "usted ha sido advertido."

¿Por qué recomendamos SOLAMENTE "apt-get" para "dist-upgrade"?

Los gestores de paquetes "adept", "aptitude", "synaptic" y "kpackage" no son siempre capaces de acomodarse a los muchos cambios que suceden en Sid (cambios de dependencias, de nombres, en los scripts de los mantenedores, etcétera). Esto no es un fallo de los desarroladores ni de estas herramientas, que son excelentes para la rama estable de Debian. Simplemente, no son aptas para las necesidades especiales de Debian Sid.

Utilice lo que más le agrade para buscar paquetes, pero recomendamos utilizar el "apt-get" para "install", "remove", "purge" y "dist-upgrade".

Los gestores de paquetes "adept", "aptitude", "synaptic" y "kpackage" no son determinísticos para selecciones complejas de paquetes: cuando estas se mezclan con un conjunto de paquetes tan cambiantes como hay en Sid, y aún peor, un repositorio externo de calidad cuestionable (no lo recomendamos, pero ésta es una realidad en algunos sistemas de usuarios) se estará acercando al desastre. Otra cosa a notar es que todos estos gestores de paquetes necesitan ejecutarse en el nivel 5, y/o en X, y hacer un dist-upgrade (ni siquiera upgrade) en nivel 5 ó en X está desaconsejado. Puede dañar el sistema hasta un punto irreparable, quizás no hoy ni mañana, pero dentro de algún tiempo sucederá.

Por otro lado "apt-get" hace exactamente lo que se espera de él. Si hay alguna rotura puede encontrar el lugar del error para depurar y arreglar la causa. Si acaso "apt-get" quiere borrar la mitad del sistema (debido a transiciones de librerias) es una decisión que el administrador (probablemente usted) tendrá que tomar después de leer todos los mensajes.

Esta es la razón porque el sistema "Debian builds" utiliza apt-get y ninguna otra de las demás herramientas de paquetes.

Buscando un paquete con el apt-cache

Otro comando muy útil en el Sistema-APT es el apt-cache; lo busca en la Base de Datos de APT y muestra la información sobre paquetes; por ejemplo, una lista de todos los paquetes que contienen o están dirigidos a "sidux" y "manual" es retornado por la siguiente orden:

$ apt-cache search sidux manual
..........
sidux-manual-ro - el manual oficial de sidux en Romania
sidux-manual-hr - el manual oficial de sidux en Croatia
sidux-manual-common - el manual oficial de sidux - comunes
sidux-manual-en - el manual oficial de sidux en Ingles
sidux-manual-ru - el manual oficial de sidux en Ruso
sidux-manual - el manual oficial de sidux en  - todos
sidux-manual-nl - el manual oficial de sidux en Holandes
sidux-manual-es - el manual oficial de sidux en Español

Si desea más información sobre un paquete en particular, puede usar lo siguiente:

$richard@sidux:[~]# apt-cache show sidux-manual-es
Package: sidux-manual-es
Priority: optional
Section: doc
Installed-Size: 1644
Maintainer: Kel Modderman <kel@otaku42.de>
Architecture: all
Source: sidux-manual
Version: 01.12.2007.06.03-1
Depends: sidux-manual-common
Filename: pool/main/s/sidux-manual/sidux-manual-es_01.12.2007.06.03-1_all.deb
Size: 904836
MD5sum: 470715455445a711e69b60f92a6e241f
SHA1: ae0a9d8f144641561d49fb28665ecf4a4b9d811c
SHA256: 039f92e06844899b6f49d5af7203588db85677145ec067966a80b6a6cfc7ce5f
Description: el manual official de sidux en Español
 Este manual es dividido en secciones comunues, por ejemplo: una topica acerca
 de particiones se encuentra en la sección: Particionando el Disco Duro. Topicas
 con respecto al conexión inalámbrica están en la sección Internet y Redes.
 Hay tópicos que requieren estar por si sólos.
 .
 Como en cualquier documentación nuevo, pueden occurir errores/fallas de gramática
 y tipeo. Aunque esperamos corregirlos todos, los errores de logica son los más
 importante a nosotros. Los de tipografia los corregimos cuando encontramos o
 cuando estamos avisados. Esperamos su ayuda y cooperación en la depuración.
 .
 Mientras que el proyecto sigue creciendo, más documentación será agregada.
 La gente de sidux esperamos que éste resulte un recurso valioso para ustedes.
 Gracias para formar parte de la familia de sidux.

Todos las versiones instalables de los paquetes (dependiendo de la configuración del "sources.list") pueden ser listadas con este comando:

$apt-cache policy sidux-manual-es
sidux-manual-es:
  Instalados: 01.12.2007.06.03-1
  Candidato: 01.12.2007.06.03-1
  Tabla de versión:
 *** 01.12.2007.06.03-1 0
        500 http://sidux.com sid/main Packages
        100 /var/lib/dpkg/status

Una descripción completa del Sistema-APT puede encontrarse en el APT-HOWTO

Aplicación GUI de Debian para Buscar Paquetes

apt-get update
apt-get install packagesearch

Al iniciar 'packagesearch' de Debian necesita ajustar Packagesearch > Preferences para utilizar apt-get.

NO use Packagesearch para instalar paquetes, úselo solamente como un dispositivo con interfaz gráfico para buscarlos.

En el uso inicial puede que salga un mensaje diciendo que debe instalar deborphan. Por favor, úselo con ciudado.

Las búsquedas pueden ser iniciadas por:

  • patrón
  • etiquetas (basado en el sistema 'debtags', una nueva manera de categorizar paquetes Debian)
  • archivos
  • estado de instalación
  • paquetes huérfanos

Adicionalmente se muestra mucha información acerca de los paquetes, incluyendo los archivos a que pertenece. Por favor, lea Ayuda> Contenido para una explicación completa de cómo usar el GUI de la aplicación 'packagesearch' de Debian. De momento el GUI está solamente en Inglés.

Una descripción completa del APT-System puede encontrarse en el APT-HOWTO

Última modificación 28/01/2010 0145 UTC