Uso de APT Offline ----------------------------------------------------------------------------- Jason Gunthorpe Version 2.7.6 ----------------------------------------------------------------------------- Copyright © 1999 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 describe el uso de APT en un entorno sin conexión a red, específicamente una aproximación «sneaker-net» a la tarea de actualización. ----------------------------------------------------------------------------- Tabla de contenidos 1. Introducción 1.1. Resumen 2. Uso de APT en ambas máquinas 2.1. Resumen 2.2. El fichero de configuración 3. Uso de APT y wget 3.1. Resumen 3.2. Operación Capítulo 1. Introducción Tabla de contenidos 1.1. Resumen 1.1. Resumen Generalmente, APT necesita un acceso directo a un archivo de Debian, bien desde un dispositivo local o a través de una red. Otra queja frecuente es     que una máquina con un sistema Debian dispone de una conexión lenta como la de un módem, y otra máquina físicamente lejos dispone de una conexión muy rápida. La solución a esto es usar dispositivos extraíbles de gran capacidad tales como un disco Zip o uno SuperDisk. Estos discos no tienen la suficiente capacidad para almacenar todo el archivo de Debian, pero pueden contener un sub-conjunto suficientemente grande para la mayoría de usuarios. La idea es usar APT para generar una lista de los paquetes     requeridos para después almacenarlos en un disco usando el sistema que tiene una conexión rápida. Es incluso posible usar otro sistema Debian con APT, o usar un sistema operativo totalmente distinto junto con una herramienta de descarga como wget. Digamos que el sistema remoto es aquél que descarga los paquetes, y sistema destino es aquél con poca o ninguna conexión. Esto se logra manipulando con imaginación el fichero de configuración de APT. La premisa esencial es decirle a APT que busque en el disco los     ficheros del archivo. Tenga en cuenta que el disco debería tener un formato de un sistema de ficheros capaz de gestionar nombres largos de ficheros, tales como ext2, fat32 o vfat. Capítulo 2. Uso de APT en ambas máquinas Tabla de contenidos 2.1. Resumen 2.2. El fichero de configuración 2.1. Resumen La configuración más sencilla es posible si APT está instalado en ambas máquinas. La idea básica es guardar una copia del fichero de estado en el     disco, después usar el sistema remoto para obtener los últimos ficheros de paquete y decidir qué paquetes descargar. La estructura de directorios del disco debería tener este aspecto: /disc/ archives/ partial/     lists/ partial/ status sources.list apt.conf 2.2. El fichero de configuración El fichero de configuración debería indicar a APT que guarde los ficheros en el disco, y también utilizar los ficheros de configuración en el disco. El fichero «sources.list» debería contener los sitios apropiados     que desea utilizar desde el sistema remoto, y el fichero de estado debería ser una copia de /var/lib/dpkg/status del sistema destino. Tenga en cuenta que si usa un archivo local debe usar el URI «copy», de idéntica sintaxis al URI «file».     apt-conf debe contener toda la información necesaria para que APT use el disco: APT { /* Esto no es necesario si ambos sistemas tienen la misma arquitectura, informa al APT remoto la arquitectura del sistema destino */ Architecture "i386"; Get::Download-Only "true"; }; Dir {     /* Use el disco para información de estado y redireccionar el fichero de estado desde el valor predeterminado «/var/lib/dpkg» */ State "/disc/"; State::status "status"; // Los cachés binarios se guardan localmente Cache::archives "/disc/archives/"; Cache "/tmp/"; // Ubicación del fichero de fuentes. Etc "/disc/"; };     Para más detalles consulte la página de manual y el fichero de configuración de ejemplo en /usr/share/doc/apt/examples/apt.conf. Lo primero que debe hacer en el sistema destino es montar el disco y guardar en él una copia de /var/lib/dpkg/status. También debe crear los     directorios definidos en el Resumen, archives/partial/ y lists/partial/. Después, lleve el disco hasta el sistema remoto y configure «sources.list». Ejecute lo siguiente en el sistema remoto: # export APT_CONFIG="/disc/apt.conf" # apt-get update     [ APT obtiene los ficheros de paquete ] # apt-get dist-upgrade [ APT obtiene todos los paquetes necesarios para actualizar el sistema destino ] Puede reemplazar la orden «dist-upgrade» con cualquiera otra orden     estándar de APT, en especial «dselect-upgrade». Incluso puede usar una interfaz de APT como dselect. Sin embargo, esto presenta un problema al informar después de sus selecciones al sistema remoto.     Ahora el disco contiene todos los ficheros de índice y archivo necesarios para actualizar el sistema destino. Inserte el disco otra vez y ejecute: # export APT_CONFIG="/disc/apt.conf" # apt-get check     [ APT genera una copia local de los ficheros de caché ] # apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade [ O cualquiera otra orden de APT ]     Para un correcto funcionamiento debe definir nuevamente el fichero de estado local. Tiene una importancia crucial. Si está usando dselect puede realizar la arriesgada operación de copiar «disc/status» a «/var/lib/dpkg/status» para actualizar todas las     selecciones hecha en el sistema remoto. Recomiendo seriamente hacer las selecciones sólo en el sistema local, aunque puede que no sea posible. NO copie el fichero de estado si dpkg o APT se han ejecutado mientras tanto. Capítulo 3. Uso de APT y wget Tabla de contenidos 3.1. Resumen 3.2. Operación 3.1. Resumen wget es una herramienta de descarga muy popular que funciona     prácticamente en cualquier sistema. A diferencia del método anterior, requiere que el sistema Debian tenga una lista de paquetes disponibles. La idea básica es crear un disco que sólo contiene los ficheros del     archivo descargados desde el sistema remoto. Esto se hace mediante la opción de apt-get «--print-uris», para después preparar un script de wget que finalmente obtendrá los paquetes. 3.2. Operación A diferencia de la técnica anterior, no requiere ningún fichero de     configuración especial. Solo se utilizan órdenes estándar de APT para generar el fichero con la lista. # apt-get dist-upgrade [ Pulse no cuando se le pregunte, asegúrese de estar conforme con las     acciones ] # apt-get -qq --print-uris dist-upgrade > uris # awk '{print "wget -O " $2 " " $1}' < uris > /disc/wget-script     Se puede utilizar cualquier otra orden aparte de «dist-upgrade», incluyendo «dselect-upgrade». El fichero «/disc/wget-script» ahora contiene una lista de órdenes de     wget a ejecutar para obtener los archivos necesarios. Este script se debería ejecutar en el directorio del punto de montaje del disco para poder guardar la salida en el disco.     El sistema remoto haría algo como # cd /disc     # sh -x ./wget-script [ wait.. ]     Una vez que los archivos se han descargado y el disco está finalmente conectado al sistema Debian, ejecute la instalación con lo siguiente.     # apt-get -o dir::cache::archives="/disc/" dist-upgrade     Esto utiliza los archivos del disco previamente obtenidos.