Apt-zip
Índice
1. Introducción.
2. Instalación.
3. Configuración.
4. Preparación del sistema.
5. Soportes removibles
6. Sintaxis y opciones.
7. Uso.
7.1. Actualizar el sistema.
7.1.1. Dselect-upgrade.
7.1.2. Upgrade.
7.1.3. Dist-upgrade.
7.2. Instalar paquetes faltantes.
7.2.1. Los scripts.
7.2.2. Instalación de paquetes.
7.3. Ninguna conexión a internet.
7.3.1. La idea.
1. Introducción
A veces nos encontramos en la situación de tener que actualizar una maquina con una conexión a internet lenta o inexistente...
Algunas veces nos viene sugerido crear un mirror Debian, otras nos viene sugerido la descarga del primer DVD o de los primeros 2 o 3 Cd's (como sabemos en sid no existe nada de esto).
Por esto es que haremos uso de una herramienta por demás cómoda para estos casos.
2. Instalación.
La instalación es muy simple:
# apt-get install apt-zip3. Configuración.
El archivo de configuración es '''/etc/apt/apt-zip.conf''' el cual contiene algunos valores por defecto utilizados por los dos comandos de apt-zip.
Aquí el archivo por defecto:
# Configuration file for apt-zip.
# This is a /bin/sh code snippet.
# METHOD is taken from /usr/share/apt-zip/.
METHOD=wget
# MEDIUM should be defined in /etc/fstab with option `noauto'.
MEDIUM=/ZIP
# OPTIONS is a comma-separated list of options.
# Possible options include: tar[=posixtarprogram], gnutar[=gnutarprogram],
# solaristar[=solaristarprogram], restart
# Examples:
# OPTIONS=tar=gtar
# OPTIONS=solaristar,restart
# OPTIONS="gnutar, restart=1"
# Recommended for a Solaris download host when possible:
# OPTIONS=solaristar,gnutar=gtar,restart
OPTIONS=
# DEFAULT_APTGETACTION is the action taken by apt-get when neither
# the --aptgetaction nor the --packages options are given.
# Possible actions include: dselect-upgrade(default), upgrade and dist-upgrade
DEFAULT_APTGETACTION=dselect-upgrade
# The regexp applied to filter (with grep) the files to download.
# Examples:
# GREP=^http\|^ftp
# GREP="-v ^cdrom\|^file"
GREP="^http\|^ftp"
Las directivas que nos interesan son dos:
MEDIUM y DEFAULT_APTGETACTION
MEDIUM''' indica la ruta del periférico removible que vendrá utilizado (a modo de ejemplo lo he hecho en /mnt/pen, el punto de montaje de mi memoria flash usb).
DEFAULT_APTGETACTION la acción por defecto de apt-get (a menos que no sea indicada una lista de paquetes u otra acción), por defecto ejecuta una actualización tramite dselect.
Normalmente solo MEDIUM viene modificado , esto es porque las opciones que trae por defecto son las mas correctas para cualquier uso.
4. Preparación del sistema.
Antes de pasar al análisis del programa y su utilización , prepararemos el sistema para usar apt-zip.
Normalmente es necesario un disco removible (flash usb, disco usb, un ZIP u otro) pero es posible ,con algunas modificaciones, exportar los dos archivos creados por apt-zip a un floppy o enviarlos por mail , y después crear en otra sede un cd o dvd con los paquetes descargados.
5. Soportes removibles.
En el caso en que dispongamos un soporte externo removible es aconsejable modificar el archivo /etc/fstab agregando la siguiente linea (que refiere al dispositivo):
mountpoint device filesystem options 0 0por ejemplo (en el caso de una memoria flash)
/dev/sdb1 /mnt/pen vfat rw,users,umask=000,quiet 0 0para las opciones y los sistemas de archivos disponibles , invito a leer la documentación dada por:
$ aman montuno6. Sintaxis y opciones.
Apt-zip esta compuesto por dos ejecutables:
apt-zip-list y apt-zip-inst
apt-zip-list : su tarea es generar un script (y un archivo que contiene las opciones para la instalación de los paquetes que vendrán descargados) para la descarga de los paquetes en cualquier sistema Linux (con un "truco" es posible descargar los paquetes en un sistema operativo diferente , con la condición que este wget instalado).
apt-zip-inst : tiene la tarea de instalar los paquetes descargados.
La sintaxis es la siguiente:
apt-zip-list [--help] [--version] [--medium=mountpoint]
[--aptgetaction=action] [--packages=package[,package...]]
[--fix-broken] [--skip-montuno] [--method=method] [--options=opt[,opt...]]
[ --accept=accept[,accept...]] [ --reject=reject[,reject...]]
apt-zip-inst [--help] [--version] [--medium=mountpoint] [--aptgetaction=action]
[--packages=package[,package...]] [--fix-broken] [--skip-montuno]
Donde el significado de las opciones es el siguiente:
En común :
; --help, -h : Muestra una pequeña ayuda.
; --medium, -m : Indica el punto de montaje diferente al indicado en el archivo de configuracion.
; --aptgetaction, -a : Indica la acción que deberá ser llevada a cabo por apt-get ,las opciones posibles son : dselect-upgrade, upgrade y dist-upgrade.
Si no viene especificada la opción --packages, viene ejecutada la acción por defecto.
; --packages, -p : Indica la lista de los paquetes a instalar.(separados por coma)
; --fix-broken, -f : Ejecuta apt-get con la opción --fix-broken (man apt-get).
; --skip-mount : No ejecuta el montaje ni el desmontaje del periférico (útil si no se quiere usar un periférico extraíble).
Solo para apt-get-list
; --accept , -A / --reject , -R : Lista (separada por comas) de los protocolos utilizados para la descarga (por defecto http y ftp).
7. Uso
Trataremos de la misma manera tanto el caso en que venga utilizado un soporte extraíble , o aquel en que sea usado un directorio local...
Antes de lanzar apt-zip debemos decidir que hacer:
## Actualizar el sistema.
## usar dselect.
## hacer un upgrade.
## hacer un dist-upgrade.
## instalar paquetes faltantes.
7.1. Actualizar el sistema.
Seguramente es la practica mas difundida...tenemos a disposición tres opciones:
7.1.1. Dselect-upgrade.
Ejecutando:
# dselecty lanzando la actualización , vendrán descargados los archivos con la lista de paquetes actualizados, que serán procesados por dselect... además se podrán seleccionar los paquetes que se quieren instalar (en practica se usa normalmente la herramienta dselect , teniendo cuidado de no seleccionar la opción de instalar los paquetes , sino salir del programa)...
Una vez hecho esto , es suficiente ejecutar el siguiente comando para crear los dos scripts necesarios para descargar los paquetes desde otro pc:
# apt-zip-list --aptgetaction=dselect-upgrade --medium=/mnt/pointdonde /mnt/point representa el punto de montaje del dispositivo extraible , si se trata de un directorio normal , el comando a ejecutar sera ;
# apt-zip-list --aptgetaction=dselect-upgrade --skip-mount --medium=/mnt/point7.1.2. Upgrade.
Vendrá generada la lista de paquetes a descargar para luego ejecutar un
# apt-get upgradeel comando para hacer esto es;
# apt-zip-list --aptgetaction=upgrade --medium=/mnt/pointen el caso de un soporte extraible , o
# apt-zip-list --aptgetaction=upgrade --skip-mount --medium=/mnt/pointen el caso de un directorio local.
7.1.3. Dist-upgrade.
En este caso , vendrá generada la lista de paquetes a descargar para completar el comando
# apt-get dist-upgradeel comando para hacerlo es:
# apt-zip-list --aptgetaction=dist-upgrade --medium/mnt/pointsiempre en el caso de soporte extraible , o
# apt-zip-list --aptgetaction=dist-upgrade --skip-mount --medium=/mnt/pointpara directorio local.
7.2. Instalar los paquetes faltantes.
En este caso , es posible crear la lista de paquetes necesarios para la instalación de un programa/paquete resolviendo sus dependencias...
el comando es:
# apt-zip-list --packages=paquete,paquete1,paquete2 --medium=/mnt/pointen el caso de soporte extraible , o
# apt-zip-list --packages=paquete,paquete1,paquete2 --skip-mount --medium=/mnt/pointen el caso de un directorio...
donde paquete,paquete1,paquete2 es la lista de los paquetes a instalar (separados por comas).
Como podemos ver , el uso es verdaderamente bastante fácil e intuitivo.
7.2.1 Los scripts.
Después de la ejecución de los comandos explicados anteriormente , vendrán generados dos scripts:
apt-zip.options contiene las opciones pasadas a apt-zip-list , que serán utilizadas por apt-zip-inst para instalar correctamente los paquetes descargados.
fetch-script-wget-nombremaquina
que se encargara de descargar los paquetes , de controlar el md5 (y así evitar problemas).
En pocas palabras , sera fácil , en el pc desde el cual se pueden descargar los paquetes , ejecutar el segundo script:
$ ./fetch-script-wget-nombremáquinaasí vendrán descargados los paquetes contenidos en la lista...
Si no disponemos de una shell donde ejecutar el script (si el pc tiene windows , por ejemplo , aunque es posible [2]), es posible descargar igualmente los paquetes...
Sera suficiente , con ejecutar el siguiente comando:
$ cat fetch-script-wget-nombremaquina | egrep "://" | cut -d " " -f 1 > lista.txtpara obtener una lista en un archivo "normal" , utilizable con wget o con otro programa para la descarga de archivos desde la red...
Si usamos wget (Disponible también para otros sistemas operativos [1]) es suficiente un
$ wget -i lista.txt
|
Nota
|
7.2.2. Instalación de paquetes.
Una vez terminado , podemos instalar los paquetes con el comando:
# apt-zip-int --medium=/mnt/point(la directiva --medium puede ser omitida si esta presenten el archivo de configuración de apt-zip)
agregando , eventualmente --skip-mount si se trata de un directorio local.
7.3. Ninguna conexión a internet.
En esta sección veremos como usar apt-zip en ausencia casi total de conexión a internet.
7.3.1. La idea.
La idea es , fundamentalmente , simple: "engañaremos" apt creando en nuestra pc un mirror de repositorios. El mirror sera parcial , pues tendrá solamente los archivos relativos a los paquetes contenidos en el repositorio. Para esta operación nos valdremos de Apache , porque apt-zip no agrega en la lista los paquetes no leídos tramite una conexión internet (por ejemplo aquellos en disco).
Lamentablemente esta parte quedara para una segunda entrega.
[1] Bash & Windows - http://www.steve.org.uk/Software/bash/
[2] WGET for Windows - http://www.interlog.com/~tcharron/wgetwin.html
Fuente:man apt-zip
- 529 lecturas
- Comentarios page (1 comments)