Guía de usuario de APT ----------------------------------------------------------------------------- Jason Gunthorpe Version 2.9.2 ----------------------------------------------------------------------------- Copyright © 1998 Jason Gunthorpe License Notice APT y este documento son software libre. Se garantiza permiso para     copiar, distribuir y modificar este documento según los términos de la GNU General Public License publicada por la Free Software Foundation, ya sea en su versión 2 o (a su elección) cualquier versión posterior.     Para más detalles acerca de sistemas Debian y la licencia completa, consulte el fichero «/usr/share/common-licenses/GPL». Resumen Este documento ofrece una introducción sobre cómo usar el gestor de paquetes APT. ----------------------------------------------------------------------------- Tabla de contenidos 1. General 1.1. Anatomía del sistema de paquetes 2. apt-get 3. DSelect 4. La interfaz 4.1. Arranque 4.2. El informe de estado 4.2.1. La lista de paquetes extras 4.2.2. Los paquetes a eliminar 4.2.3. La lista de paquetes nuevos 4.2.4. La lista de paquetes retenidos 4.2.5. Advertencia de paquetes retenidos 4.2.6. Resumen final 4.3. La pantalla de estado 4.4. Dpkg Capítulo 1. General Tabla de contenidos 1.1. Anatomía del sistema de paquetes El paquete APT contiene a día de hoy dos secciones, el método dselect y     la interfaz de usuario para la línea de órdenes apt-get. Ambos ofrecen una manera de instalar y desinstalar paquetes, así como descargar paquetes nuevos de Internet. 1.1. Anatomía del sistema de paquetes El sistema de empaquetado de Debian tiene una gran cantidad de     información asociada a cada paquete para asegurar una integración sencilla y limpia en el sistema. La característica más importante es el sistema de dependencias. El sistema de dependencias permite el uso de elementos compartidos en el sistema por programas individuales, tales como bibliotecas. Ésto     simplifica ubicar porciones poco usadas de programas en distintos paquetes para así reducir el número de cosas que el usuario medio tiene que instalar. También permite elegir el agente de transporte del correo electrónico, el servidor de X y demás. El primer paso para entender el sistema de dependencias es familiarizarse     con el concepto de dependencia simple. El significado de una dependencia simple es que un paquete requiere que otro también esté instalado para poder funcionar correctamente. Por ejemplo, mailcrypt es una extensión de emacs que asiste en el cifrado de correo con GPG. Sin GPG, mailcrypt es inservible, y por ello mailcrypt     tiene una dependencia simple con GPG. Como también es una extensión de emacs tiene una dependencia simple con emacs, ya que sin él mailcrypt es inservible. Otra importante dependencia que debe entender es la dependencia de conflicto. Esto se produce cuando se instala un paquete junto con otro de modo que la combinación los hace inservibles, pudiendo causar daños en el sistema. Como ejemplo, suponga un agente de transporte de correo     electrónico como sendmail, exim o qmail. Es imposible tener dos agentes de transporte de correo instalados ya que ambos necesitan una conexión con la red para recibir correo. El intento de instalar dos puede dañar gravemente el sistema, y por ello todos los agentes de transporte de correo tienen una dependencia de conflicto con todos los demás. Para complicarlo todo, cabe la posibilidad de que un paquete pretenda ser otro. En muchos aspectos, exim y sendmail son idénticos; ambos envían correo y entienden una misma interfaz. Por ello, el sistema de paquetes     tiene una forma de hacer que ambos declaren ser agentes de transporte de correo («mail-transport-agent»). Así, exim y sendmail declaran que proporcionan un agente de transporte de correo y los paquetes que dependen de tales agentes dependerán de «mail-transport-agent». Esto puede añadir confusión al intentar arreglar paquetes manualmente. Puede que en cualquier momento una dependencia simple se satisfaga por paquetes ya instalados, o que la dependencia no esté satisfecha. APT     intenta asistir en la resolución de problemas de dependencias mediante un número de algoritmos automáticos que ayudan en la selección de paquetes a instalar. Capítulo 2. apt-get apt-get ofrece una forma sencilla de instalar paquetes desde la línea de     órdenes. A diferencia de dpkg, apt-get no intenta comprender los ficheros «.deb», sino que funciona con el nombre real del paquete y sólo puede instalar ficheros «.deb» desde una fuente. La primera ^[1] cosa que debería hacer antes de usar apt-get es obtener     las listas de paquetes desde las fuentes para así conocer los paquetes disponibles. Puede hacer esto mediante apt-get update. Por ejemplo, # apt-get update Des http://ftp.de.debian.org/debian-non-US/ stable/binary-i386/ Packages     Des http://llug.sep.bnl.gov/debian/ testing/contrib Packages Leyendo lista de paquetes... Hecho Creando árbol de dependencias... Hecho     Puede usar varias órdenes después de actualizar: upgrade «upgrade» intentará actualizar con cuidado todo el sistema. «upgrade» nunca intentará instalar un paquete nuevo o eliminar un paquete existente, y en ningún caso actualizará un paquete que pueda causar un problema de dependencias rotas a otro paquete. «upgrade» mostrará todos los paquetes que no pudo actualizar, lo cual generalmente significa que dependen de paquetes nuevos o que entran en conflicto con otro paquete. Puede usar dselect o apt-get install para forzar la instalación de tales paquetes. install «install» se usa para instalar paquetes por nombre. El paquete se obtendrá e instalará automáticamente. Es de utilidad si ya conoce el nombre del paquete a instalar y no desea ejecutar una interfaz gráfica para seleccionarlo. Puede introducir cualquier número de     paquetes para su instalación y todos se obtendrán. La instalación automática intenta resolver problemas de dependencias con los paquetes listados, y mostrará un resumen al pedir una confirmación en caso de modificar cualquiera de los argumentos introducidos. dist-upgrade «dist-upgrade» es una actualizador completo diseñado para simplificar la actualización entre publicaciones de Debian. Utiliza un sofisticado algoritmo para diseñar el mejor conjunto de paquetes a instalar, actualizar y eliminar para así obtener cuanto sea posible de la última publicación. Puede que en algunas situaciones desee usar «dist-upgrade» en lugar de pasar tiempo resolviendo dependencias con dselect. Puede usar dselect para instalar cualquier paquete que se haya quedado atrás. Es importante revisar lo que «dist-upgrade» planea hacer, ya que sus decisiones a veces pueden resultar sorprendentes. apt-get ofrece varias opciones de línea de órdenes detalladas en su página de manual, apt-get(8). La opción más útil es -d, que no instala los ficheros obtenidos. Puede que no desee instalar los paquetes de     inicio si el sistema se tiene que descargar un gran número de éstos, en caso de que algo vaya mal. Cuando usa -d puede instalar los ficheros descargados simplemente ejecutando la orden que provocó su descarga, sin -d. -----------------------------------------------------------------------------     ^[1] Si está usando un servidor proxy primero debe definir la variable de entorno http_proxy, consulte sources.list (5). Capítulo 3. DSelect El método dselect de APT ofrece el sistema completo de APT con la     interfaz gráfica de selección de paquetes dselect. dselect se usa para seleccionar los paquetes a instalar o desinstalar que en realidad instalará APT. Para habilitar el método APT tiene que seleccionar [M]étodo en dselect, y después seleccionar el método APT. Se le pedirá un conjunto de fuentes, ubicaciones de donde obtener los ficheros. Pueden ser sitios remotos de Internet, replicas locales de Debian o discos ópticos. Cada fuente puede     proporcionar un fragmento del total del archivo Debian, los cuales APT combinará automáticamente para formar un conjunto completo de paquetes. Si tiene un disco óptico es una buena idea definirlo primero en el fichero de configuración y después especificar una replica para así tener acceso a los últimos arreglos de fallos. APT usará automáticamente los paquetes del disco óptico en lugar de descargarlos de Internet. Set up a list of distribution source locations Please give the base URL of the debian distribution. The access schemes I know about are: http file     For example: file:/mnt/debian, ftp://ftp.debian.org/debian, http://ftp.de.debian.org/debian, URL [http://llug.sep.bnl.gov/debian]: La configuración de las fuentes comienza preguntando la base del archivo     de Debian, cuyo valor predeterminado es una réplica HTTP. A continuación, preguntará la distribución a obtener. Please give the distribution tag to get or a path to the package file ending in a /. The distribution     tags are typically something like: stable unstable testing non-US Distribution [stable]: La distribución se refiere a la versión de Debian en el archivo, stable (estable) se refiere a la última versión publicada, y unstable     (inestable) se refiere a la versión en desarrollo. non-US sólo está disponible en algunas réplicas, aquellos paquetes que contienen tecnología cifrada y otras cosas que no se pueden exportar desde los Estados Unidos. Aun así, importar estos paquetes a E.E.U.U es ilegal. Please give the components to get     The components are typically something like: main contrib non-free non-free-firmware Components [main contrib non-free non-free-firmware]: La lista de componentes se refiere a la lista de sub-distribuciones a obtener. La distribución está dividida en base a licencias de software,     siendo «main» paquetes libres de acuerdo con DFSG, mientras que «contrib» y «non-free» contienen paquetes con restricciones en cuanto a su uso y distribución.     Puede añadir cualquier número de fuentes, el script de configuración le preguntará por fuentes hasta que el usuario defina todo lo que quiera. Es necesario actualizar la lista disponible mediante el elemento de menú [A]ctualizar antes de iniciar dselect. Éste es un superconjunto de     apt-get update que permite a dselect disponer de la información obtenida. Debe ejecutar [A]ctualizar aunque haya ejecutado apt-get update con anterioridad. Hecho esto puede realizar sus selecciones usando [S]elect y ejecutar la     instalación posteriormente con [I]nstall. Al usar el método APT las órdenes [C]onfig y [R]emove carecen de significado ya que la orden [I] nstall ejecuta ambos a la vez. Por omisión, APT eliminará automáticamente los ficheros de paquete     («.deb») una vez que se hayan instalado con éxito. Para modificar este comportamiento, inserte Dselect::clean "prompt"; en «/etc/apt/apt.conf». Capítulo 4. La interfaz Tabla de contenidos 4.1. Arranque 4.2. El informe de estado 4.2.1. La lista de paquetes extras 4.2.2. Los paquetes a eliminar 4.2.3. La lista de paquetes nuevos 4.2.4. La lista de paquetes retenidos 4.2.5. Advertencia de paquetes retenidos 4.2.6. Resumen final 4.3. La pantalla de estado 4.4. Dpkg El método dselect de APT y apt-get comparten la misma interfaz. Es un sencillo programa que le informa de lo que va a hacer, para después     llevarlo a cabo. ^[2] Después de mostrar el resumen de lo que va a pasar APT mostrará mensajes de estado informativos para ofrecer una estimación de cuánto queda por hacer. 4.1. Arranque APT realiza un número de acciones para preparar su estado interno antes     de cualquier operación, a excepción de «update». También realiza algunas revisiones del estado del sistema. Puede llevar a cabo estas acciones en cualquier momento ejecutando apt-get check. # apt-get check     Leyendo lista de paquetes... Hecho Creando árbol de dependencias... Hecho La primera acción que ejecuta es pasar todos los ficheros de paquete a la memoria. APT usa un esquema de almacenado con lo cual esta operación será     más rápida la segunda vez que la ejecute. De no encontrar algún fichero de paquete, éstos se ignorarán y verá una advertencia al finalizar apt-get. La última acción realiza un detallado análisis de las dependencias del     sistema. Revisa cada dependencia de cada paquete instalado o sin desempaquetar analiza su validación. En caso de error aparecerá un informe, y apt-get se negará a ejecutarse. # apt-get check Leyendo lista de paquetes... Hecho Creando árbol de dependencias... Hecho Tal vez quiera ejecutar 'apt --fix-broken install' para corregirlo. Los siguientes paquetes tienen dependencias incumplidas: 9fonts: Depende: xlib6g pero no está instalado uucp: Depende: mailx pero no está instalado     blast: Depende: xlib6g (>= 3.3-5) pero no está instalado adduser: Depende: perl-base pero no está instalado aumix: Depende: libgpmg1 pero no está instalado debiandoc-sgml: Depende: sgml-base pero no está instalado bash-builtins: Depende: bash (>= 2.01) pero 2.0-3 está instalado cthugha: Depende: svgalibg1 pero no está instalado Depende: xlib6g (>= 3.3-5) pero no está instalado libreadlineg2: Entra en conflicto:libreadline2 (<< 2.1-2.1) En este ejemplo el sistema tiene varios problemas, incluyendo un serio problema con libreadlineg2. Una línea aparecerá por cada paquete con     dependencias no satisfechas indicando el paquete con el problema y las dependencias no satisfechas. También incluye una explicación de porqué el paquete tiene un problema de dependencias. Hay dos formas de que el sistema tenga un estado roto como éste. El primero es causado por la omisión de dpkg de ciertas relaciones delicadas     entre paquetes al realizar una actualización. ^[3]. El segundo ocurre se la instalación de un paquete falla durante la operación. En esta situación puede que un paquete se haya desempaquetado sin que sus dependencias estuviesen instaladas previamente. La segunda situación es mucho menos grave que la primera ya que APT define ciertos límites en el orden de instalación de los paquetes. En     ambos casos, introducir la opción -f a apt-get causará que APT deduzca una posible solución al problema para después continuar. El método dselect de APT siempre ofrece la opción -f para permitir una fácil continuación cuando existen scripts fallidos del mantenedor. Aún así, de usar la opción -f para corregir un sistema gravemente roto por el primer caso cabe que la acción falle inmediatamente o que la     secuencia de instalación se interrumpa. En cualquier caso es necesario usar dpkg manualmente (puede que con opciones de forzado) para corregir la situación lo suficiente como para que APT pueda continuar. 4.2. El informe de estado Antes de proceder apt-get presentará un informe de lo que va a ocurrir. Generalmente el informe refleja el tipo de operación a realizar, pero hay     ciertos elementos comunes. La lista refleja el estado final de las cosas en todos los casos, teniendo en cuenta la opción -f y cualquier otra actividad relevante a la orden ejecutada. 4.2.1. La lista de paquetes extras Se instalarán los siguientes paquetes extras: libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl     mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy squake pgp-i python-base debmake ldso perl libreadlineg2 ssh La lista de paquetes extras muestra todos los paquetes que se van a     instalar o actualizar en adición a aquellos mencionados en la línea de órdenes. Sólo se genera para la orden install. Generalmente, los paquetes listados son el resultado de una instalación automática. 4.2.2. Los paquetes a eliminar Los siguientes paquetes se ELIMINARÁN: xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix     xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid nas xpilot xfig La lista de paquetes a eliminar muestra todos los paquetes que se van a eliminar del sistema. Puede aparecer durante cualquier operación, y se debería revisar cuidadosamente para asegurar que no se va a eliminar nada     importante. La opción -f puede generar varios paquetes a eliminar así que se debe utilizar con precaución. La lista puede contener paquetes a eliminar porque están parcialmente instalados, posiblemente debido a una instalación interrumpida. 4.2.3. La lista de paquetes nuevos     Se instalarán los siguientes paquetes NUEVOS: zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base La lista de paquetes nuevos es sólo un recordatorio de lo que va a     ocurrir. Los paquetes listados no se encuentran instalados en el sistema pero lo estarán cuando APT finalice. 4.2.4. La lista de paquetes retenidos Los siguientes paquetes se han retenido:     compface man-db tetex-base msql libpaper svgalib1 gs snmp arena lynx xpat2 groff xscreensaver Puede que al actualizar el sistema por completo no se puedan instalar versiones nuevas de paquetes porque requieren nuevos elementos que entran     en conflicto con paquetes ya instalados. En este caso, el paquete aparecerá en la lista de paquetes retenidos. La mejor manera de instalar paquetes listados aquí es mediante apt-get install o mediante dselect para así resolver esos problemas. 4.2.5. Advertencia de paquetes retenidos     Se cambiarán los siguientes paquetes retenidos: cvs Puede que a veces ordene a APT que instale un paquete retenido, en cuyo     caso verá una advertencia de que el paquete retenido se va a modificar. Esto sólo debería ocurrir durante un «dist-upgrade» o un «install». 4.2.6. Resumen final     Por último, APT mostrará un resumen de los cambios que se llevarán a cabo. 206 paquetes actualizados, 8 se instalarán, 23 para eliminar y 51 no     actualizados. 12 paquetes no instalados del todo o eliminados. Se necesita descargar 65.7M/66.7M de archivos. Se usarán 26.5M después de desempaquetar. La primera línea del resumen es simplemente una versión reducida de todas las listas e incluye el número de actualizaciones, esto es, paquetes ya instalados y de los cuales existen versiones nuevas disponibles. La segunda línea indica el número de paquetes mal configurados, posiblemente el resultado de una instalación interrumpida. La última línea muestra los requerimientos de espacio para la instalación. El primer par de números     indican el tamaño de los ficheros del archivo. El primer número indica el número de bytes que se tienen que obtener de ubicaciones remotas, y el segundo indica el tamaño total de todos los archivos requeridos. El siguiente número indica la diferencia de tamaño entre los paquetes instalados y los paquetes nuevos a instalar. Básicamente equivale al espacio requerido en «/usr» al finalizar el proceso. En caso de existir varios paquetes a eliminar el valor puede indicar la cantidad de espacio que se va a liberar.     Puede generar otros informes con la opción «-u» para mostrar los paquetes a actualizar, similar a los ejemplos anteriores. 4.3. La pantalla de estado     APT muestra una serie de mensajes de estado en el transcurso de descargar ficheros de paquete y archivo. # apt-get update Des:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages Des:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages     Obj http://llug.sep.bnl.gov/debian/ testing/main Packages Des:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages es:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages 11% [5 testing/non-free Esperando las cabeceras 0/32.1k 0%] 2203b/s 1m52s Las líneas comenzando con Des aparecen cuando APT inicia la obtención de un fichero, mientras que la última línea indica el progreso de la     descarga. El primer valor porcentual en la barra de progreso indica el porcentaje total de los ficheros ya descargados. Desafortunadamente, apt-get update desconoce el tamaño de los ficheros de paquete y por ello genera una estimación que puede ser inexacta. La siguiente sección de la línea de estado se repite por cada instancia de descarga e indica la operación realizada, así como información útil relativa a lo que está pasando. Puede que esta sección sólo muestre     Forking, lo cual significa que el sistema operativo está cargando el módulo de descargas. La primera palabra después de «[» es el número de obtención tal y como se muestra en la línea del histórico. La siguiente palabra es la forma corta del nombre del objeto en descarga. Al conectarse con los archivos, contendrá el nombre del paquete obtenido. Una cadena informativa aparecerá entre comillas simples indicando el progreso de la fase de negociación de la descarga. Generalmente progresa de Conectando a Esperando fichero, finalizando con Descargando o Continuando. El último valor es el número de bytes descargados desde el sitio remoto. Una vez que la descarga arranque se representará como 102/ 10.2k indicando que ya se han obtenido 102 bytes y que se esperan 10.2     kilobytes. El tamaño total siempre aparece con la notación de la figura 4 para conservar espacio. A continuación aparece un medidor porcentual del fichero. El penúltimo elemento es la media instantánea de velocidad. Estos valores se actualizan cada 5 segundos y reflejan la tasa de descarga de datos de ese periodo. Por último puede ver el tiempo estimado para la transferencia. Esto se actualiza regularmente y refleja el tiempo restante para completar todo tal y como se ve en la tasa de transferencia visible. La pantalla de estado se actualiza cada medio segundo para ofrecer una constante información del progreso de la descarga, mientras que las     líneas «Des» se desplazan hacia atrás cuando se inicia la descarga de otro fichero. Ya que la pantalla de estado se actualiza constantemente carece de utilidad para su registro en un fichero. Puede usar la opción -q para omitir la pantalla de estado. 4.4. Dpkg APT usa dpkg para instalar ficheros, y pasará a interactuar con dpkg al finalizar la descarga. dpkg también planteará un número de preguntas a     medida que procesa los paquetes, los cuales también pueden formular preguntas. A cada pregunta generalmente le precede una descripción de la pregunta en sí. Éstas son demasiado variadas como para poder tratarlas aquí en su totalidad. ----------------------------------------------------------------------------- ^[2] El método dselect es en realidad un conjunto de scripts en torno a     apt-get. En realidad, el método ofrece más funcionalidad que la presente en apt-get por si mismo.     ^[3] APT, de todas formas, considera todas las dependencias conocidas e intenta prevenir paquetes rotos