next up previous
Next: Sobre este documento... Up: 2. Instalar y desinstalar Previous: 2.2 El convenio de

2.3 APT, A Package Tool.

Si se intenta instalar un paquete con dpkg (con el convenio de archivos comentado en la sección anterior y el ejemplo debería ser suficiente para que el lector puediese hacerlo) lo más seguro es que nos encontremos con un mensaje como este:


filemon:/var/www/mecanet/debian# dpkg  -i /home/ftp/pub/debian/dists/slink/main/binary-i386/x11/gnome-terminal_0.30-2.deb 
Selecting previously deselected package gnome-terminal.
(Reading database ... 25561 files and directories currently installed.)
Unpacking gnome-terminal (from .../x11/gnome-terminal_0.30-2.deb) ...
dpkg: dependency problems prevent configuration of gnome-terminal:
 gnome-terminal depends on gnome-core (>= 0.30-2); however:
  Package gnome-core is not installed.
 gnome-terminal depends on gdk-imlib1 (>= 1.8.1-1); however:
  Package gdk-imlib1 is not installed.
 gnome-terminal depends on libglib1.1 (>= 1.1.3-2); however:
  Package libglib1.1 is not installed.
 gnome-terminal depends on libgnome0 (>= 0.30.1-3); however:
  Package libgnome0 is not installed.
 gnome-terminal depends on libgtk1.1 (>= 1:1.1.2-2); however:
  Package libgtk1.1 is not installed.
 gnome-terminal depends on libzvt0 (>= 0.30.1-3); however:
  Package libzvt0 is not installed.
dpkg: error processing gnome-terminal (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 gnome-terminal

Hemos intentado instalar un paquete que depende de muchos otros que todavía no se encuentran instalados. Deberíamos instalar antes aquellos y, al final, instalar el que deseamos. Esto se conoce como dependencias entre paquetes y dpkg no las resuelve por sí mismo (no instala los paquetes necesarios) solamente evita que estas dependencias se violen.

Obviamente es un problema grave ya que los paquetes a instalar pueden depender de otros que, a su vez dependan de más, etc. Por ello es necesario alguna herramienta que, una vez comprobadas todas las dependencias, realice la instalación completa. El programa en concreto es apt-get y viene a sustituir a dselect por ser mucho más eficiente.

apt-get es un comando como dpkg (no posee interfaz de menús como dselect) pero sigue un convenio distinto para los nombres. Aquí sí ponemos el nombre del paquete y no el de su archivo (.deb) para dar ordenes acerca de la instalación y desinstalación.

Por ejemplo para instalar el paquete anterior sería:


ulises:~# apt-get install gnome-terminal
Updating package status cache...done
Checking system integrity...ok
The following extra packages will be installed:
  libzvt0 
The following NEW packages will be installed:
  libzvt0 gnome-terminal 
0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0b/56.9k of archives. After unpacking 124k will be used.
Do you want to continue? [Y/n] 

y si respondemos que sí instalará los paquetes correspondientes. También informa del espacio necesario para instalar los paquetes y toma decisiones de actualización de paquetes a las versiones necesarias.

Es una herramienta muy útil pero no sustituye a dpkg que, de hecho, es utilizado por apt para realizar la instalación de cada uno de los paquetes.

Para que podamos referirnos al nombre del paquete y no al .deb correspondiente (ni haya que especificar dónde se encuentra) apt usa el archivo de configuración /etc/apt/sources.list en el que se indica tanto el método de acceso (ftp, http, local, etc) como el lugar en el que se encuentra una distribución de Debian que sigue el convenio indicado en la primera sección de este documento.

El aspecto del archivo de configuración de apt es:


# Use for a local mirror - remove the ftp1 http lines for the bits
# your mirror contains.
# deb file:/your/mirror/here/debian stable main contrib non-free
# See sources.list(5) for more information, especial
# Remember that you can only use http, ftp or file URIs
deb file:/home/ftp/pub/debian stable main contrib non-free
deb file:/home/ftp/pub/debian-non-US stable non-US
#deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable non-US

Antes de poder usar apt para instalar es necesario actualizar la lista de paquetes disponibles con apt-get update. Tras ello ya podemos hacer referencia a los nombres de los paquetes que apt traducirá internamente al nombre del archivo (con su trayecto completo) del paquete.

apt también permite actualizar las versiones de paquetes y de todo un sistema (por ejemplo para migrar de Debian 2.0 a Debian 2.1), para más información me remito a la documentación que viene con la misma distribución (ver al principio del documento).

Las opciones que ofrece el programa son:


apt 0.1.9 for i386 compiled on Nov  5 1998  17:50:04
Usage: apt-get [-hqq] update
       apt-get [-hqqdn] upgrade
       apt-get [-hqqdn] install pkg [pkg ...]
       apt-get [-hqqdn] dist-upgrade
       apt-get [-hqqdn] dselect-upgrade

The most frequently used commands are update and install.

Commands:
       update - Retrieve new lists of packages
       upgrade - Perform an upgrade
       install - Install new packages (pkg is libc6 not libc6.deb)
       dist-upgrade - Distribution upgrade, see apt-get(8)
       dselect-upgrade - Follow dselect selections
       clean - Erase downloaded archive files

Options:
  -h  This help text
  -q  Loggable output - no progress indicator
  -qq No output except for errors
  -d  Download only - do NOT install or unpack archives
  -s  No-act. Perform ordering simulation
  -y  Assume Yes to all queries and do not prompt
  -f  Attempt to continue if the integrity check fails
  -m  Attempt to continue if archives are unlocatable

See the apt-get(8) and sources.list(8) manual pages for more information.


next up previous
Next: Sobre este documento... Up: 2. Instalar y desinstalar Previous: 2.2 El convenio de
root
1999-06-26