Capitulo 2.3 Actualizando un sistema Debian

Uno de los objetivos de Debian es proporcionar una manera de actualizar sin problemas, segura y fiable. El sistema de paquetes alerta al administrador sobre cambios importantes o, a veces, le solicita que tome decisiones.

También debería leer las Release Notes, el documento que describe los detalles sobre actualizaciones específicas, que acompañan a todos los CDs de Debian y disponibles en la WWW en http://www.debian.org/releases/stable/releasenotes o http://www.debian.org/releases/testing/releasenotes.

En Administración de paquetes Debian, Capítulo 6 se proporciona una guía práctica sobre actualizaciones. Esta sección describe solamente los detalles básicos comenzando con las herramientas de empaquetar.


2.3.1 dpkg

Este es el programa principal para manipular los archivos de un paquete ; consulte dpkg(8) para una descripción completa.

dpkg viene acompañado con diversos programas suplementarios primitivos.

  • dpkg-deb: Manipula los archivos .deb. dpkg-deb(1)
  • dpkg-ftp: un antiguo comando para la obtención de paquetes. dpkg-ftp(1)
  • dpkg-mountable: un antiguo comando para la obtención de paquetes. dpkg-mountable(1)
  • dpkg-split: divide un paquete grande en archivos más pequeños. dpkg-split(1)

dpkg-ftp y dpkg-mountable han quedado obsoletos luego de la introducción del sistema APT.


2.3.2 APT

APT (Advanced Packaging Tool) es una interfaz avanzada del sistema de paquetes de Debian que consiste en diversos programas cuyos nombres generalmente comienzan con “apt-”. apt-get, apt-cache y apt-cdrom son herramientas de la línea de comandos para el manejo de paquetes. Estos también funcionan como frontales de usuario para otras herramientas tales como dselect y aptitude.

Para más información, instale el paquete apt y lea apt-get(8), apt-cache(8), apt-cdrom(8), apt.conf(5), sources.list(5), apt_preferences(5) (Woody) y /usr/share/doc/apt/guide.html/index.html.

Una fuente alternativa de información es el APT HOWTO. Éste se puede instalar mediante apt-howto en /usr/share/doc/apt-howto/en/apt-howto-en.html/index.html.

apt-get upgrade y apt-get dist-upgrade tienden a obtener todos los paquetes situados bajo “Dependen:” y descarta todos los paquetes listados en “Recomendados:” y “Sugeridos:”. Para evitar esto, use dselect.


2.3.3 dselect

Este programa es una interfaz de usuario con menús para el sistema de administración de paquetes Debian. Particularmente resulta útil para las primeras instalaciones y actualizaciones a gran escala. Véase dselect, Sección 6.2.3.

Para más información, instale el paquete install-doc y lea /usr/share/doc/install-doc/dselect-beginner.en.html o Documentación dselect para principiantes.


2.3.4 Actualizando un sistema en funcionamiento

El kernel (el sistema de archivos) en los sistemas Debian admite el reemplazo de archivos incluso cuando están siendo usados. Cuando los paquetes son actualizados cualquier servicio proporcionado por estos paquetes son reiniciados si han sido configurados para ejecutarse en el nivel de ejecución presente. El sistema Debian no exige usar el modo monousuario para actualizar un sistema en funcionamiento.


2.3.5 Archivos .deb descargados y en caché

Si ha descargado manualmente los paquetes a su disco (lo cual no es en absoluto necesario, véase arriba para la descripción de dpkg-ftp o APT), entonces después de haber instalados puede eliminarlos de su sistema.

Si utiliza APT, los archivos se guardan en el caché situado en el directorio /var/cache/apt/archives. Tras la instalación puede eliminarlos (apt-get clean) o copiarlos al directorio /var/cache/apt/archives de otra máquina para economizar el tiempo de descarga para instalaciones posteriores.


2.3.6 Mantener un registro de las actualizaciones

dpkg mantiene un registro de los paquetes que han sido desempaquetados, configurados, eliminados y/o purgados pero (hasta el momento) no mantiene un registro de la actividad del terminal que tiene lugar cuando el paquete está siendo manipulado.

La manera más sencilla de superar este inconveniente consiste en ejecutar las sesiones de dpkg, dselect, apt-get, etc., con el programa script(1).


2.4 El proceso de arranque de Debian


2.4.1 El programa init

Al igual que todos los sistemas Unix, Debian arranca ejecutando el programa init. El archivo de configuración de init (que es el /etc/inittab) indica que el primer script que se debe ejecutar es el /etc/init.d/rcS.

Lo que ocurre a continuación depende de si se encuentra instalado el paquete sysv-rc o el file-rc. A continuación, supondremos que se encuentra instalado el paquete sysv-rc (file-rc contiene su propio script /etc/init.d/rcS y utiliza un archivo en vez de enlaces simbólicos en los directorios rc para controlar qué servicios se inician en los diferentes niveles de ejecución)

El archivo /etc/init.d/rcS del paquete sysv-rc ejecuta todos los scripts situados en /etc/rcS.d/ para realizar inicializaciones tales como la comprobación y montaje de los sistemas de archivos, la carga de módulos, la inicialización de los servicios de red, la configuración del reloj, etc. Luego, y por compatibilidad, también ejecuta todos los archivos (excepto aquellos con un `.’ en su nombre) situados en /etc/rc.boot/. Este último directorio está reservado para el administrador del sistema y su utilización ha caído en desuso. Véase Trucos para la inicialización del sistema, Sección 9.1 y el Sistema de niveles de ejecución y scripts init.d en el Manual de Normativa de Debian para más información.

Debian no utiliza el directorio rc.local del tipo BSD.


2.4.2 Niveles de ejecución

Luego de completar el proceso de arranque, init inicia todos los servicios que han sido configurados para ejecutarse en el nivel de ejecución predeterminado. Este último viene indicado por una entrada id en el /etc/inittab. Debian viene con id=2.

Debian utiliza los siguientes niveles de ejecución:

  • 1 (modo monousuario),
  • 2 al 5 (modos multiusuario) y
  • 0 (apagar el sistema),
  • 6 (reiniciar el sistema).

Tambien puede utilizarse los niveles de ejecución 7, 8 y 9 pero sus directorios rc no se van llenando a medida que son instalados los paquetes.

Cambie los niveles de ejecución utilizando el comando telinit.

Al entrar a un nivel de ejecución se ejecutan todos los scripts ubicadosi en /etc/rcnivel_de_ejecución.d/. La primera letra del nombre del script determina la manera en que se ejecuta el script: Los scripts cuyos nombres comienzan con K se ejecutan con el argumento stop. Los scripts que comienzan con S se ejecutan con el argumento start. Los scripts se ejecutan de acuerdo al orden alfabético de sus nombres; de esta manera los scripts “stop” se ejecutan antes que los scripts “start” y los dos díguitos a continuación de K o S determinan el orden en que se ejecutan los scripts.

Los scripts situados en /etc/rcnivel_de_ejecución son de hecho sólo enlaces simbólicos que apuntan a los scripts situados en /etc/init.d/ Cada script también acepta como argumento “restart” y “force-reload”; estos métodos se pueden utilizar para reiniciar los servicios una vez que haya sido arrancado el sistema o forzarlos para que vuelvan a cargar sus archivos de configuración.

Por ejemplo:

     # /etc/init.d/exim4 force-reload


2.4.3 Personalizando los niveles de ejecución

La personalización de los niveles de ejecución es una tarea avanzada del administrador del sistema. Los siguientes consejos son válidos para la mayoría de los servicios.

Para habilitar el servicio servicio en el nivel de ejecución R cree el enlace simbólico /etc/rcR.d/Sxyservicio con objetivo ../init.d/servicio. El número de secuencia xy debe ser igual al asignado al servicio cuando fue instalado el paquete.

Para deshabilitar un servicio, cambie de nombre el enlace simbólico de modo que su nombre comience con K y no con S y su número de secuencia sea 100 menos xy.

Para estos fines, es conveniente usar un editor de niveles de ejecución tales como sysv-rc-conf o ksysv.

En vez de cambiarle el nombre, es posible eliminar el enlace simbólico S de un servicio de un directorio de niveles de ejecución determinado. Esto no deshabilita el servicio sino que lo deja en un estado “potencial” al menos en lo que respecta al sistema init sysv-rc : al cambiar de nivel de ejecución el servicio no se lo activará ni se lo detendrá sino que se lo dejará como estaba, independientemente si esta ejecutándose o no. Obsérvese, no obstante, que un servicio que está en este estado potencial se activará si se actualiza su paquete independientemente si estaba o no ejecutándose antes de la actualización. Este es un atajo conocido del sistema Debian actual. Nótese además que debería conservar los enlaces simbólicos K de un servicio en los niveles de ejecución 0 y 6. Si borra todos los enlaces simbolicos de un servicio, entonces al actualizar el paquete del mismo restaurará todos los enlaces simbólicos a su estado predeterminado de fábrica.

No es aconsejable realizar modificaciones a los enlaces simbólicos situados en /etc/rcS.d/.


2.5 En apoyo a la diversidad

Debian ofrece diversas alternativas para satisfacer los deseos del administrador del sistema sin dañar al sistema.

  • dpkg-divert, véase El comando dpkg-divert, Sección 6.5.1.
  • equivs, véase El paquete equivs, Sección 6.5.2.
  • update-alternative, véase Comandos alternativos, Sección 6.5.3.
  • make-kpkg puede alojar distintos cargadores de arranque. Véase make-kpkg(1).

Cualquier archivo situado en /usr/local/ pertenece al administrador del sistema y Debian no los va a tocar. La mayoría los archivos situados en /etc/ son conffiles (archivos de configuración) y Debian no los sobreescribirá durante una actualización salvo que el administrador del sistema los solicite en forma explícita.


2.6 Internacionalización

El sistema Debian se encuentra internacionalizado y provee soporte para la visualización y entrada de caracteres en diversos idiomas, tanto en la consola como en X. Diversos, documentos, páginas del manual y mensajes del sistema han sido traducidos en un número creciente de idiomas. Durante la instalación, Debian le pide al usuario elegir el idioma de instalación ( y a veces una variante local del idioma)

Si el sistema que ha instalado no soporta todas las características que necesita de su idioma, si necesita cambiar de idioma o instalar un teclado diferente que soporte su idioma, consulte Localización y soporte de idiomas, Sección 9.7.


2.7 Debian y el kernel

Véase El kernel de Linux en Debian, Capítulo 7.


2.7.1 Compilando un kernel desde un fuente no perteneciente a Debian

Uno tiene que comprender la política de Debian en relación a las cabeceras.

Las bibliotecacs C de Debian se construyen con las versiones más reciente de las cabeceras del kernel de la rama estable.

Por ejemplo, la versión Debian-1.2 usaba la versión 5.4.13 de las cabeceras. Esta práctica contrasta con los paquetes fuentes del kernel de Linux distribuidos por todos los sitios de archivos FTP de Linux que usan incluso versiones más recientes de las cabeceras. Los archivos de cabecera del kernel distribuidos con los fuentes del mismo están ubicados en /usr/include/linux/include/.

Si necesita compilar un programa con las cabeceras del kernel que son más nuevas que las proporcionadas por libc6-dev debe incluir al compilar -I/usr/src/linux/include/ en la línea de comando. Esto me ocurrió una vez con el empaquetado del demonio automounter (amd). Cuando los nuevos núcleos cambiaron algunos detalles internos relacionados con el NFS, amd necesitaba saber de ellos. Esto me obligó a incluir las cabeceras de los últimos núcleos.


2.7.2 Herramientas para crear núcleos personalizados

A los usuarios que desean (o deben) crear un núcleo personalizado se les recomienda descargar el paquete kernel-package. Este paquete contiene el script para crear el paquete del kernel y proporciona la posibilidad de crear un paquete Debian kernel-image ejecutando el comando

     # make-kpkg kernel_image

en el directorio principal de los fuentes del kernel. La ayuda disponible se obtiene ejecutando el comando

     # make-kpkg --help

o mediante la página del manual make-kpkg(1). y El kernel de Linux en Debian, Capítulo 7.

Los usuarios deben descargar por cuenta propia el código fuente más reciente del núcleo (o del núcleo de su preferencia) de su sitio Linux favorito a menos que se encuentre disponible un paquete kernel-source-version (donde version hace referencia a la versión del kernel). El script de arranque initrd de Debian requiere de un parche especial para el kernel llamado initrd; véase http://bugs.debian.org/149236.

En el archivo /usr/doc/kernel-package/README se dan instrucciones detalladas para el uso del paquete kernel-package.


2.7.3 Cuidados especiales para tratar con módulos

El paquete modconf de Debian proporciona un script de shell (/usr/sbin/modconf) que se puede usar para personalizar la configuración de los módulos. Este script presenta una interfaz basada en menús en donde el usuario puede elegir los distintos controladores de dispositivos que se pueden cargar en el sistema. Las respuestas se utilizan para personalizar el archivo /etc/modules.conf (que contiene los alias y demás argumentos que se deben usar para los diferentes módulos) gracias a los archivos /etc/modutils/ y /etc/modules (que contiene los módulos que se deben cargar durante el arranque).

Al igual que los archivos (nuevos) Configure.help que ahora están disponibles para admitir la construcción de núcleos personalizados, el paquete modconf package viene con una serie de archivos de ayuda (en /usr/share/modconf/) que proporcionan información detallada sobre los argumentos apropiados para cada uno de los módulos. Véase El kernel modular 2.4, Sección 7.2 para algunos ejemplos.


2.7.4 Desinstalando el paquete de un kernel antiguo

El script kernel-image-NNN.prerm comprueba si el kernel que está actualmente ejecutando es el mismo que el que está intentando desinstalar. Por lo tanto, puede eliminar de manera segura los núcleos que no desea seguir usando con el siguiente comando:

     # dpkg --purge --force-remove-essential kernel-image-NNN

(obviamente, hay que reemplazar NNN por el número de versión y revisión de su kernel)

Popularity: 1% [?]

Por favor, escriba un comentario

Por favor tome en cuenta lo siguiente:
Los comentarios son moderados, por lo cual puede tardar en ser publicados. No hay necesidad de repetir su comentario.
Su correo electronico nunca sera revelado.