Tabla de contenidos
Esperando a un sistema de
archivos raíz
Le sugerimos que antes de actualizar lea también la información en Capítulo 5, Problemas que debe tener en cuenta para lenny. Ese capítulo cubre problemas que se pueden dar y que no están directamente relacionados con el proceso de actualización, pero que aún así podría ser importante conocer antes de empezar.
Es muy recomendable realizar una copia de seguridad completa o al menos una de los datos o información de configuración que no pueda permitirse perder antes de actualizar su sistema. Las herramientas y el proceso de actualización son bastante fiables, pero un fallo de hardware a mitad de una actualización podría resultar en un sistema muy dañado.
Los elementos principales que podría querer salvaguardar son los contenidos
de /etc
, /var/lib/dpkg
,
/var/lib/aptitude/pkgstates
así como la salida de
«dpkg --get-selections "*"
» (las comillas son
importantes).
El proceso de actualización no modifica nada dentro del directorio
/home
. Algunas aplicaciones (como es el caso de algunas
partes del conjunto de aplicaciones Mozilla y el de los entornos de
escritorio de KDE y GNOME) sí sobreescribirán la configuración del usuario
con los nuevos valores por omisión cuando el usuario arranque una nueva
versión de la aplicación. Como medida preventiva quizás desee realizar una
copia de seguridad de los directorios y archivos ocultos («dotfiles»,
archivos que comienzan por punto, N. del T.) en los directorios personales
de los usuarios. Esta copia de seguridad le será útil para restaurar o
recrear la configuración previa a la actualización. Quizás quiera también
avisar a los usuarios de este asunto.
Cualquier operación de instalación de paquetes debe ser ejecutada con
privilegios de superusuario, bien accediendo al sistema como
root
o usando los programas su o
sudo para obtener los derechos de acceso necesarios.
La actualización tiene unas cuantas condiciones previas, así que debería revisarlas antes de ponerse a ello.
La versión de glibc
de lenny
no funcionará con versiones del núcleo anteriores a la
2.6.8
en ninguna arquitectura y algunas arquitecturas
puede que requieran versiones superiores. Le recomendamos encarecidamente
que actualice y pruebe una versión del núcleo 2.6.18
o
2.6.24
de etch o un núcleo a medida basado
en, al menos, la versión 2.6.18
antes de comenzar con el
proceso de actualización.
Es aconsejable informar a los usuarios con antelación de cualquier actualización que esté planeando realizar, aunque los usuarios que accedan al sistema mediante ssh no deberían apenas notar nada durante la actualización, y deberían poder seguir trabajando.
Si desea tomar precauciones adicionales, haga una copia de seguridad, o
desmonte la partición /home
antes de actualizar.
Posiblemente deberá hacer una actualización del núcleo cuando se actualice a lenny, por lo que será necesario reiniciar el sistema. Generalmente hará esto después de que haya terminado con el proceso de actualización.
Existe un riesgo real de que experimente problemas al reiniciar el sistema tras la instalación debido a los muchos cambios introducidos en el núcleo entre etch y lenny relacionados con los controladores, el descubrimiento de hardware y la forma de nombrar y ordenar los archivos de dispositivos. Se describen muchos de los problemas conocidos en este capítulo y siguientes de estas notas de publicación.
Por esta misma razón tiene sentido asegurarse de que es capaz de recuperar el sistema en el caso que éste no pudiera reiniciarse o, para aquellos sistemas gestionados de forma remota, no pudiera arrancar correctamente la configuración de red.
Si está actualizando de forma remota a través de un enlace con ssh es altamente recomendable que tome las debidas precauciones para poder acceder al servidor a través de un terminal serie remoto. Existe la posibilidad de que tras actualizar el núcleo y reiniciar algunos de los dispositivos se renombren (como se indica en Sección 4.6.2, “Reordenación de la numeración de dispositivos”) y tenga que arreglar la configuración del sistema a través de una consola remota. Igualmente, es posible que tenga que recuperar con una consola local en caso de que el sistema se reinicie accidentalmente a la mitad de la actualización.
La primera cosa que puede probar es intentar reiniciar con su antiguo núcleo. Sin embargo, debido a las distintas razones que se documentan más adelante, es posible que esto no funcione.
Necesitará un mecanismo alternativo para arrancar su sistema y poder acceder
al mismo y repararlo si esto falla. Una opción es utilizar una imagen
especial de rescate o un CD «vivo» de Linux («live CD», N. del T.). Una vez
haya arrancado con cualquiera de éstos debería poder montar su sistema de
archivos raíz y utilizar chroot
para acceder a éste,
investigar y solucionar el problema.
Otra opción que nos gustaría recomendarle es utilizar el modo de rescate del Instalador de Debian de lenny. La ventaja en el caso de utilizar el instalador es que puede utilizar, de entre los distintos métodos de instalación, el más apropiado para su situación. Si desea más información, consulte la sección “Recuperar un sistema roto” en el capítulo octavo de la Guía de instalación y las PUF del Instalador de Debian.
El programa initramfs-tools
incluye
un intérprete de línea de órdenes para depuración[2] en los «initrds» que genera. Por ejemplo, si el initrd es
incapaz de montar su sistema de archivos raíz vd. accederá a este sistema de
depuración. En este sistema podrá utilizar algunas órdenes básicas que
pueden ayudarle a trazar el problema y quizás incluso arreglarlo.
Algunas de las cosas básicas a comprobar son: la existencia de los archivos
de dispositivos correctos en /dev
, los módulos cargados
(cat /proc/modules
), y la salida de
dmesg para ver si se producen errores al cargar los
controladores de dispositivos. La salida de dmesg también
muestra qué archivos de dispositivos se han asignado a qué discos, debería
comparar esa información con la salida de echo $ROOT
para
asegurarse que el sistema de archivos está en el dispositivo que esperaba.
En el caso de que arregle el problema puede escribir exit
para salir del entorno de depuración y continuar el proceso de arranque a
partir del punto que falló. Por supuesto, tendrá que arreglar el problema
subyacente y regenerar el «initrd» para que no vuelva a fallar en el
siguiente arranque.
La actualización de la distribución debería hacerse de forma local, frente a una consola virtual en modo texto (o conectado de forma directa mediante un terminal por puerto serie), o de forma remota mediante una conexión ssh.
Para poder tener un margen de seguridad mayor cuando actualiza de forma remota le sugerimos que realice su proceso de actualización en una consola virtual como la que ofrece el programa screen, lo que permite una reconexión segura y asegura que el proceso de actualización no se interrumpe aunque falle el proceso de conexión remota.
![]() | Importante |
---|---|
No debería actualizar usando telnet, rlogin, rsh, ni desde una sesión de X controlada por xdm, gdm o kdm en la máquina que esté actualizando. Esto se debe a que cada uno de esos servicios puede cerrarse durante la actualización, y podría hacer que el sistema se volviese inaccesible y que está sólo actualizado a la mitad. |
Los usuarios que utilicen el cargador de arranque LILO
deberían tener en cuenta que los valores por omisión initramfs-tools
generan ahora un «initramfs» que
es demasiado grande para que lo cargue LILO. Así pues,
estos usuarios deberían o bien cambiar a grub
o editar el archivo
/etc/initramfs-tools/initramfs.conf
, cambiando la línea
MODULES=most
para que diga
MODULES=dep
Tenga en cuenta, que al realizar esto hará que initramfs-tools
instale sólo aquellos módulos
que se necesitan para un hardware en concreto. Por tanto, si quiere generar
un medio de arranque que funcione en más hardware que el que tiene la
máquina en el que lo está generando, debería dejar la línea como
MODULES=most
y asegúrese de que no utiliza LILO.
Se ha diseñado el proceso de actualización descrito en este capítulo para actualizaciones de sistemas etch “puros”, en los que no existe ningún paquete de otros proveedores. Puede ser sensato eliminar paquetes de este tipo antes de empezar para asegurarse que el proceso de actualización puede funcionar correctamente.
Se supone que su sistema se ha actualizado a la última revisión de etch. Debe seguir las instrucciones descritas en Sección A.1, “Actualizar su sistema etch” si su sistema no está actualizado o no está seguro de que lo esté.
En algunos casos, utilizar apt-get para instalar paquetes en lugar de aptitude puede hacer que aptitude considere que un paquete no está siendo utilizado (marcado como «unused») y lo marcará para su eliminación. Por regla general debería asegurarse que su sistema está totalmente actualizado y “limpio” antes de empezar la actualización.
Por ello, es necesario que revise si existe alguna acción pendiente en el
gestor de paquetes aptitude. El procedimiento de
actualización puede verse afectado negativamente si algún paquete está
marcado para eliminarse o actualizarse. Tenga en cuenta que sólo podrá
corregir esto si su archivo de configuración
sources.list
apunta a
etch y no a stable o
lenny, consulte Sección A.2, “Comprobar su lista de fuentes”.
Para realizar esta revisión debería ejecutar el interfaz de usuario en “modo visual” de aptitude y pulsar g (“Go”). Si se muestra cualquier acción, debería revisarla y o bien arreglarlas o llevar a cabo las acciones que se le sugieran. Se le presentará el mensaje “No hay ningún paquete planificado para instalar, eliminar o actualizar” si no hay ninguna acción pendiente.
Si ha configurado APT para que instale ciertos paquetes de una distribución
distinta de la estable, por ejemplo la distribución “testing”
(“en pruebas”, N. del T.), puede ser que haya cambiado la
configuración de bloqueo (o pinning) de APT (almacenada
en /etc/apt/preferences
) para permitir que se
actualicen paquetes con versiones más recientes que en la distribución
estable. Puede encontrar más información sobre el bloqueo de APT en
apt_preferences(5).
Independientemente del método que se use para actualizar, se recomienda que compruebe el estado de todos los paquetes primero, y que verifique que todos los paquetes se encuentran en un estado actualizable. La siguiente orden mostrará cualquier paquete que se haya quedado a medio instalar (estado Half-Installed) o en los que haya fallado la configuración (estado Failed-Config), así como los que tengan cualquier estado de error.
# dpkg --audit
También puede inspeccionar el estado de todos los paquetes de su sistema usando dselect, aptitude , o con órdenes tales como:
# dpkg -l | paginador
o
# dpkg --get-selections "*" > ~/paqu-actuales.txt
Es deseable eliminar cualquier paquete retenido (paquete en estado «hold», N. del T.) antes de actualizar. El proceso fallará si un paquete esencial para la actualización está bloqueado.
Tenga en cuenta que aptitude utiliza un método para registrar los paquetes retenidos distinto del que utilizan apt-get y dselect. Puede utilizar la siguiente orden para identificar los paquetes que están retenidos en aptitude:
# aptitude search "~ahold" | grep "^.h"
Si quiere comprobar los paquetes que tiene retenidos con apt-get debería utilizar:
# dpkg --get-selections | grep hold
Si ha cambiado y recompilado un paquete de forma local, y no le ha cambiado el nombre o marcado con una época («epoch», N. del T.) en la versión, debería retenerlo (ponerlo en hold) para evitar que se actualice.
Se puede cambiar el estado de un paquete retenido (“hold”) en aptitude con la siguiente orden:
# aptitude hold nombre_paquete
Cambie hold
por unhold
para marcar o
no el paquete como retenido, respectivamente.
Si hay algo que debe arreglar es mejor que se asegure de que su archivo
sources.list
aún incluye referencias a etch
tal y como se explica en Sección A.2, “Comprobar su lista de fuentes”.
Antes de actualizar el sistema debería eliminar la sección
proposed-updates
de su archivo
/etc/apt/sources.list
si la tiene listada. Esta medida
de precaución reducirá la posibilidad de que se produzcan conflictos.
Debe tener en cuenta que si tiene paquetes en el sistema que no sean de
Debian es posible que éstos se eliminen durante la actualización debido a
dependencias que entren en conflicto. Si el paquete se instaló después de
añadir un repositorio de paquetes extra en su archivo
/etc/apt/sources.list
debería asegurarse de que ese
repositorio también ofrece paquetes compilados para lenny y cambiar
la línea de la fuente al mismo tiempo que cambia otras líneas de las fuentes
de los paquetes Debian.
Algunos usuarios tienen versiones “más nuevas” de paquetes que sí están en Debian a través de recompilaciones no oficiales («backports», N. del T.) que están instaladas en su sistema etch. Es muy probable que estos paquetes causen problemas durante la actualización y que den lugar a conflictos de archivos[3]. Puede encontrar más información sobre los conflictos de archivos y su resolución en la sección Sección 4.5.8, “Posibles problemas durante o después de la actualización”
backports.org
es un repositorio semi-oficial que ofrecen
los desarrolladores de Debian GNU/Linux. Este repositorio ofrece nuevas versiones de
paquetes para la versión estable, basado en una recompilación de los
paquetes en el archivo de “testing”.
El repositorio backports.org
contiene principalmente
paquetes de “testing”, utilizando un número de versión reducido
de forma que funcione el proceso de actualización de los
“backports” de etch a lenny. Existen
algunos paquetes de “backports” que se han construido basándose
en las versiones en el repositorio inestable: actualizaciones de seguridad,
esto también incluye a las siguientes excepciones: Firefox, el núcleo de
Linux, OpenOffice.org, y X.Org.
If you do not use one of these exceptions, you can safely upgrade to
lenny. If you use one of these exceptions, set the
Pin-Priority
(see apt_preferences(5)) temporarily to 1001
for all packages
from lenny, and you should be able to do a safe dist-upgrade too.
Debe desmarcar de forma manual algunos paquetes para impedir que aptitude los elimine por haberlos instalado a través de dependencias. La marca a eliminar es la marca auto. Los paquetes marcados de esta forma incluyen a OpenOffice y a Vim en las instalaciones de escritorio:
# aptitude unmarkauto openoffice.org vim
Si ha instalado imágenes del núcleo 2.6 a través del metapaquete del núcleo deberá hacer lo mismo con éstas:
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6.*' | cut -f1)
![]() | Nota |
---|---|
Puede revisar qué paquetes están marcados como auto en aptitude ejecutando: # aptitude search '~i~M' |
Antes de comenzar la actualización, debe modificar las listas de paquetes en
el archivo de configuración de apt
:
/etc/apt/sources.list
.
apt
tomará en consideración todos
los paquetes que pueda encontrar mediante una línea que empiece por
“deb
”, e instalará el paquete con el mayor
número de versión, dando prioridad a las líneas que aparezcan primero. En el
caso de utilizar distintos repositorios de paquetes, habitualmente se
indicará primero el disco duro local, luego los CD-ROM, y por último las
réplicas HTTP y FTP.
![]() | Sugerencia |
---|---|
Puede que tenga que introducir una excepción a la comprobación con
GPG para los DVDs y
CD-ROMs. Añada la siguiente línea, si no la tiene ya en
APT::Authentication::TrustCDROM "true"; Sin embargo, esto no funciona con ficheros de imagen de DVD/CD-ROM. |
Una versión se puede designar tanto por su nombre en clave (por ejemplo
etch
, lenny
) como
por su nombre de estado (esto es, oldstable
,
stable
, testing
,
unstable
). Referirse a la distribución por su nombre en
clave tiene la ventaja de que nunca se sorprenderá si se produce una nueva
versión y por esa razón es el caso que aquí se describe. Esto significa que
va a tener que estar atento a los anuncios nuevas versiones. Sin embargo, si
utiliza el nombre del estado verá un número muy elevado de actualizaciones
de paquetes en el mismo momento en el que la publicación de una nueva
versión se haya realizado.
La configuración por omisión para la instalación escoge los principales
servidores de Debian en Internet, pero puede que desee modificar
/etc/apt/sources.list
para usar otras réplicas,
preferentemente una que esté cerca (en términos de red) de usted.
Encontrará la lista de direcciones de las réplicas en HTTP o FTP de Debian en http://www.debian.org/distrib/ftplist (busque en la sección “Lista de completa de sitios de réplica”). Las réplicas HTTP suelen ser más rápidas, en general, que las FTP.
Por ejemplo, suponga que su réplica más cercana es
http://mirrors.kernel.org/
. Si observa su contenido mediante
un navegador web o un programa FTP, comprobará que los directorios
principales están organizados así:
http://mirrors.kernel.org/debian/dists/lenny/main/binary-i386/... http://mirrors.kernel.org/debian/dists/lenny/contrib/binary-i386/...
Deberá añadir esta línea a su archivo sources.list
para
usar esta réplica con apt
:
deb http://mirrors.kernel.org/debian lenny main contrib
Fíjese que «dists
» se añade de forma implícita, y los
parámetros tras el nombre de la versión se usan para expandir la ruta a
varios directorios.
Tras añadir sus nuevas fuentes, desactive las líneas
“deb
” que había en
sources.list
, colocando el símbolo de sostenido
(#
) delante de ellas.
En lugar de utilizar réplicas de paquetes HTTP ó FTP, puede que desee
modificar el archivo /etc/apt/sources.list
para usar
una réplica existente en su disco local (posiblemente montada mediante
NFS).
Por ejemplo, su réplica de paquetes puede encontrarse en
/var/ftp/debian/
, y tener directorios como estos:
/var/ftp/debian/dists/lenny/main/binary-i386/... /var/ftp/debian/dists/lenny/contrib/binary-i386/...
Para usar esta ubicación con apt
debe añadir esta línea a su archivo sources.list
:
deb file:/var/ftp/debian lenny main contrib
Fíjese que «dists
» se añade de forma implícita, y los
parámetros tras el nombre de la versión se usan para expandir la ruta a
varios directorios.
Tras añadir sus nuevas fuentes, desactive las líneas
“deb
” que había en
sources.list
, colocando el símbolo de sostenido
(#
) delante de ellas.
Si sólo desea usar CDs, comente todas las líneas
“deb
” existentes en
/etc/apt/sources.list
colocando delante de ellas un
símbolo de sostenido (#
).
Asegúrese de que existe una línea en /etc/fstab
que
permita montar la unidad lectora de CD-ROMs en el punto de montaje
/cdrom
(apt-cdrom necesita este
punto de montaje en particular). Por ejemplo, si su lector de CD-ROM se
encuentra en /dev/hdc
, el archivo de configuración
/etc/fstab
debería contener una línea como:
/dev/hdc/ cdrom auto defaults,noauto,ro 0 0
Fíjese que no debe haber espacios entre las palabras
defaults,noauto,ro
en el cuarto campo.
Para verificar que esto funciona, inserte un CD e intente ejecutar
# mount /cdrom # ésto montará el CD en el punto de montaje # ls -alF /cdrom # ésto debería mostrar el directorio raíz del CD # umount /cdrom # ésto desmontará el CD
Después, ejecute:
# apt-cdrom add
para añadir los datos a la base de datos de APT. Repita esta operación para cada CD-ROM de binarios de Debian que tenga.
El método recomendado para actualizar desde versiones anteriores de Debian GNU/Linux es usar la herramienta de gestión de paquetes aptitude. Este programa toma decisiones más seguras sobre la instalación de paquetes que la ejecución directa de apt-get.
No olvide montar todas las particiones que necesite (en particular la raíz y
/usr
) en modo lectura y escritura, con una orden como:
# mount -o remount,rw /puntodemontaje
A continuación asegúrese de que las entradas con las fuentes de APT (en el
archivo /etc/apt/sources.list
) hacen referencia a la
distribución “lenny
” o a estable
(“stable
”). No debería haber ninguna entrada
que haga referencia a “etch
”.
![]() | Nota |
---|---|
Las líneas de fuentes de un CD-ROM habitualmente hacen referencia a
inestable (“ |
Se recomienda encarecidamente que utilice el programa /usr/bin/script para guardar una transcripción de la sesión de actualización. Así, si ocurre algún problema, tendrá un registro de lo que ha sucedido y, si fuera necesario, podrá proporcionar la información detallada cuando envíe un informe de fallo. Para iniciar la transcripción, teclee:
# script -t 2>~/actualiza-a-lenny.time -a ~/actualiza-a-lenny.script
o similar. No ponga el archivo de transcripción en un directorio temporal
como /tmp
o /var/tmp
(los archivos
que hay en esos directorios se pueden borrar durante la actualización o
durante el reinicio del sistema).
La transcripción también le permitirá revisar la información que se haya
salido fuera de la pantalla. Simplemente acceda al terminal VT2 (utilizando
Alt+F2)
y, después de acceder al sistema, utilice less -R
~root/actualiza-a-lenny.script
para leer el archivo.
Después de completar la actualización puede terminar con la transcripción de
script escribiendo exit
en el
indicador de línea de órdenes.
Si ha utilizado la opción -t para script puede utilizar el programa scriptreplay para reproducir la sesión completa:
# scriptreplay ~/actualiza-a-lenny.time ~/actualiza-a-lenny.script
En primer lugar, tiene que descargar la lista con los paquetes disponibles para la nueva versión. Logrará esto si ejecuta:
# aptitude update
La primera vez que ejecute esto se actualizarán las nuevas fuentes y se mostrarán algunos mensajes de aviso relacionados con la disponibilidad de las fuentes. Estos avisos son inocuos, no volverán a aparecer si vuelve a ejecutar la orden.
Antes de actualizar su sistema tiene que asegurarse de que tiene suficiente
espacio libre en su disco duro para poder seguir las instrucciones de una
actualización completa del sistema que se describen en Sección 4.5.7, “Actualizar el resto del sistema”. Primero, cualquier paquete que necesario para
la instalación se descargará y se almacenará en
/var/cache/apt/archives
(y en el subdirectorio
partial/
, mientras se está descargando), por lo que
necesitará suficiente espacio libre en la partición donde se encuentre
/var/
para poder descargar temporalmente los paquetes
que se instalarán en su sistema. Después de la descarga, probablemente
necesitará más espacio en las otras particiones del sistema para poder
instalar tanto las actualizaciones de los paquetes (que podrían contener
archivos más grandes) como los paquetes nuevos que se necesiten en la
actualización. Si su sistema no tiene suficiente espacio podría terminar con
una actualización incompleta de la cual podría ser difícil recuperarse.
Tanto aptitude como apt
le mostrarán información detallada del
espacio libre necesario para la instalación. Puede consultar esa estimación,
antes de proceder con la actualización, si ejecuta:
(Se reproduce a continuación la salida de aptitude en español) # aptitude -y -s -f --with-recommends dist-upgrade [...] XXX paquetes actualizados, XXX nuevos instalados, XXX para eliminar y XXX sin actualizar. Necesito descargar xx.xxMB/yyyMB de archivos. Después de desempaquetar se usarán zzzMB. Descargará/instalará/eliminará paquetes.
![]() | Nota |
---|---|
Puede que la ejecución de esta orden al principio del proceso de actualización genere un error, por las razones descritas en las siguientes secciones. En ese caso tiene que esperar para ejecutar esta orden hasta haber realizado una actualización mínima del sistema tal y como se describe en Sección 4.5.6, “Actualización mínima del sistema” y haber actualizado el núcleo como se describe en Sección 4.1.1.1, “Asegúrese de que está utilizando un núcleo apropiado” para poder estimar el espacio de disco necesario. |
Si no tiene espacio suficiente para la actualización, asegúrese de hacer sitio antes de proceder. Puede hacer lo siguiente:
Elimine paquetes descargados previamente para su instalación de la caché del
sistema (que puede hallar en
/var/cache/apt/archive
). Puede utilizar la orden
apt-get clean o aptitude clean para
borrar todos los archivos de paquetes previamente descargados.
Elimine los paquetes olvidados. Si tiene instalado popularity-contest
, puede usar
popcon-largest-unused para listar los paquetes que vd. no
usa en el sistema y que ocupan un mayor espacio en disco. También puede usar
deborphan o debfoster para encontrar
paquetes obsoletos (vea también Sección 4.10, “Paquetes obsoletos”). También puede
ejecutar aptitude en “modo visual” y buscar
los paquetes obsoletos bajo “Paquetes obsoletos y creados
localmente”.
Elimine los paquetes que ocupen demasiado espacio de disco y que no va a
necesitar actualmente (siempre puede reinstalarlos después de la
actualización). Puede crear una lista de los paquetes que ocupan la mayoría
del espacio en disco con dpigs (disponible en el paquete
debian-goodies
) o con
wajig (ejecutando wajig size).
You can list packages that take up most of the disk space with aptitude
. Start aptitude
into “visual mode”, select
→ (this menu entry is available only after
etch version), press l and enter ~i
,
press S and enter ~installsize
, then it
will give you nice list to work with. Doing this after upgrading
aptitude
should give you access to
this new feature.
Puede eliminar las traducciones y los archivos de localización del sistema
si no los necesita. Para ello puede instalar el paquete localepurge
, configurándolo para que sólo se
mantengan en el sistema algunas localizaciones específicas. Esto reducirá el
espacio de disco consumido en /usr/share/locale
.
Mueva de forma temporal a otro sistema o elimínelos de forma permanente, los
registros del sistema que residen en /var/log/
.
Utilice una ubicación temporal para
/var/cache/apt/archives
: puede utilizar una caché
temporal en otro sistema de archivos (USB, dispositivo de
almacenamiento, espacio en disco duro temporal, sistema de ficheros en uso,
etc. ).
![]() | Nota |
---|---|
No utilice un sistema montado a través de NFS dado que la conexión de red podría interrumpirse durante la actualización. |
Por ejemplo, si tiene una unidad USB montada en
/media/usbkey
:
elimine los paquetes que se han descargado previamente para la instalación
# apt-get clean
copie los contenidos de /var/cache/apt/archives
a la
unidad USB:
# cp -ax /var/cache/apt/archives /media/usbkey/
monte el directorio de caché temporal sobre el actual:
# mount --bind /media/usbkey/archives /var/cache/apt/archives
después de la actualización, restaure el directorio original
/var/cache/apt/archives
# umount /media/usbkey/archives
elimine el directorio /media/usbkey/archives
.
Puede crear una directorio de caché temporal en cualquier sistema de archivos montado en su sistema.
Tenga en cuenta que para poder eliminar los paquetes con seguridad debería
cambiar su sources.list
a etch como se
describe en Sección A.2, “Comprobar su lista de fuentes”.
Varios informes de fallos han mostrado que las versiones de los paquetes
aptitude
y apt
de etch normalmente son incapaces de
gestionar la actualización a lenny. En lenny, apt
trata mejor las cadenas complejas de los
paquetes que necesitan una configuración inmediata y aptitude
es mejor buscando soluciones para
satisfacer las dependencias. Ya que estas dos funcionalidades están muy
involucradas durante el «dist-upgrade» a lenny, es mejor actualizar
estos dos paquetes antes de actualizar cualquier otro. Para apt
, ejecute:
# apt-get install apt
y ejecute para aptitude
(si lo tiene
instalado) lo siguiente:
# aptitude install aptitude
Este paso actualizará automáticamente libc6
y locales
e instalará las bibliotecas de soporte
de SELinux (libselinux1
). Algunos de
los servicios que se ejecutan en el sistema se reiniciarán tras este paso,
lo que incluye a xdm, gdm y
kdm. Las sesiones X11 locales se desconectarán a
consecuencia de esto.
aptitude
mantiene una lista de
paquetes que se han instalado automáticamente (por ejemplo, como
dependencias de otro paquete). En lenny, apt
también tiene esta funcionalidad.
La primera vez que la versión de aptitude
de lenny se ejecute, leerá en
su lista de paquetes automáticamente instalados y la convertirá para
utilizarla en la versión de apt
de
lenny. Si tiene aptitude
instalado, debería ejecutar aptitude al menos una vez
para realizar la conversión. Una manera de realizar esto es buscando un
paquete que no exista:
# aptitude search "?false"
Debido a distintos conflictos necesarios entre paquetes de etch
y de lenny, la ejecución de aptitude dist-upgrade
directamente generalmente recomendaría la eliminación de un buen número de
paquetes que seguramente quiera conservar. Le recomendamos por tanto un
proceso de actualización en dos pasos. En primer lugar una actualización
mínima para resolver estos conflictos, seguido de una actualización completa
con dist-upgrade
.
En primer lugar, debe ejecutar:
# aptitude safe-upgrade
Esto tiene como consecuencia que se actualicen los paquetes que se puedan actualizar en el sistema sin que sea necesario eliminar ni instalar ningún otro paquete.
El siguiente paso a dar depende del conjunto de paquetes que tenga instalado. Estas notas de publicación proporcionan recomendaciones generales sobre el método a utilizar pero, si tiene dudas, se recomienda que revise los paquetes que se van a eliminar al seguir el método antes de continuar.
Algunos paquetes que generalmente se deberían eliminar incluyen: base-config
, hotplug
, xlibs
, netkit-inetd
, python2.3
, xfree86-common
y xserver-common
. Puede encontrar una lista de los
paquetes obsoletos en lenny en Sección 4.10, “Paquetes obsoletos”.
Ahora puede seguir con la parte principal de la actualización. Ejecute:
# aptitude dist-upgrade
Se realizará una actualización completa del sistema, esto es, se instalarán las versiones más recientes de los paquetes y se resolverán todos los posibles cambios de dependencias entre los paquetes de diferentes versiones. Si fuera necesario, se instalarán nuevos paquetes (normalmente, nuevas versiones de las bibliotecas o paquetes que han cambiado de nombre), y se eliminarán los paquetes obsoletos conflictivos.
Cuando esté actualizando desde un conjunto de CD-ROM (o DVD), se le pedirá que inserte algunos CD específicos en varios momentos durante la actualización. Puede que tenga que insertar el mismo CD varias veces; esto se debe a paquetes interrelacionados que estén dispersos en varios CD.
Las versiones nuevas de los paquetes ya instalados que no se puedan
actualizar sin cambiar el estado de la instalación de otro paquete se
dejarán en su versión actual (en cuyo caso se mostrarán como «held back», es
decir, «retenidos»). Se puede resolver esta incidencia usando
aptitude para elegir esos paquetes para que se instalen,
o intentando ejecutar aptitude -f install
.
<paquete>
Si falla alguna operación de aptitude, apt-get o dpkg con el error:
E: Dynamic MMap ran out of room
el espacio de caché predeterminado es insuficiente. Puede resolver esto
eliminando o comentando aquellas líneas del archivo
/etc/apt/sources.list
que no necesite, o bien
incrementando el tamaño de la caché. Puede incrementar el tamaño de la caché
fijando un valor para APT::Cache-Limit
en el archivo
/etc/apt/apt.conf
. La siguiente orden fijará un valor
para éste que debería ser suficiente para la actualización:
# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf
Esta orden asume que no tiene aún definida esta variable en ese archivo.
Algunas veces es necesario activar la opción
APT::Force-LoopBreak
en APT para permitir el borrado
temporal de un paquete esencial debido a un bucle entre conflictos y
dependencias previas. aptitude le alertará de esta
situación y abortará la actualización. Puede resolver esto especificando la
opción -o APT::Force-LoopBreak=1
en la línea de órdenes
de aptitude.
Es posible que la estructura de dependencias del sistema esté tan dañada que precise de intervención manual. Normalmente, implica usar aptitude o
# dpkg --remove nombre_de_paquete
para eliminar algunos de los paquete problemáticos, o
# aptitude -f install # dpkg --configure --pending
En casos extremos, puede que necesite forzar la reinstalación con una orden como:
# dpkg --install /ruta/al/nombre_de_paquete.deb
No deberían producirse conflictos entre archivos si actualiza de un sistema etch “puro”, pero sí pueden producirse si ha instalado versiones nuevas no oficiales («backports», N. del T.). Si se produce un conflicto entre archivos se mostrará con un error similar al siguiente:
Desempaquetando<paquete-foo>
(de<paquete-foo-fichero>
) ... dpkg: error al procesar<paquete-foo>
(--install): intentando sobreescribir `<algun-nombre-fichero>
', que también está en el paquete<paquete-bar>
dpkg-deb: subprocess paste killed by signal (Broken pipe) Se encontraron errores al procesar:<paquete-foo>
Puede intentar resolver los conflictos entre archivos forzando a que se elimine el paquete mencionado en la última línea del mensaje de error:
# dpkg -r --force-depends nombre_de_paquete
Debería poder continuar la instalación donde la dejó tras corregir el
problema repitiendo las órdenes de aptitude
descritas
previamente.
Se le harán preguntas sobre la configuración o reconfiguración de diversos
paquetes durante la actualización. Cuando se le pregunte si debería
reemplazarse algún archivo en los directorios
/etc/init.d
o /etc/terminfo
, o el
archivo /etc/manpath.config
con la versión que propone
el mantenedor del paquete, normalmente deberá responder «sí» para asegurar
la consistencia del sistema. Siempre puede volver más tarde a las versiones
antiguas, ya que quedan guardada con extensión .dpkg-old
.
Si no está seguro de lo que debe hacer, anote el nombre del paquete o archivo, y revise la situación más adelante. Recuerde que podrá buscar en el archivo de transcripción de la instalación y revisar la información que apareció en pantalla durante la actualización.
Esta sección explica cómo actualizar su núcleo e identifica los posibles
problemas que pueden darse con relación a esta actualización. Puede o bien
instalar uno de los paquetes linux-image-*
que ofrece Debian o compilar un
núcleo personalizado desde el código fuente del mismo.
Tenga en cuenta que gran parte de la información de esta sección se basa en
la suposición de que está utilizando uno de los núcleos modulares de Debian,
conjuntamente con initramfs-tools
y
udev
. Parte de la información aquí
presentada puede no ser relevante para usted si utiliza un núcleo a medida
que no necesita un initrd o si utiliza un generador de initrd distinto.
Cuando realice «dist-upgrade» desde etch a lenny, le recomendamos encarecidamente que instale uno de los nuevos metapaquetes «linux-image-2.6-*». Este paquete puede que se instale automáticamente en el proceso de actualización. Puede verificarlo con la siguiente orden:
# dpkg -l "linux-image*" | grep ^ii
Si no observa ningún mensaje, entonces necesitará instalar uno de los paquetes «linux-image» nuevos a mano. Para ver una lista de los metapaquetes «linux-image-2.6» disponibles, ejecute:
# apt-cache search linux-image-2.6- | grep -v transition
Si no está seguro de qué paquete instalar, utilice la orden uname
-r
y busque un paquete con un nombre similar. Por ejemplo, si ve
«2.6.18-6-686
», le recomendamos que instale linux-image-2.6-686
. (Tenga en cuenta que ya no
existe la variante k7
. Debería instalar la variante del
núcleo 686
si ahora está utilizando la variante del
núcleo k7
). También puede utilizar
apt-cache para ver una descripción más larga de cada uno
de los paquetes para así ayudarle a realizar una mejor elección de entre los
que hay disponibles. Por ejemplo:
# apt-cache show linux-image-2.6-686
Luego debería usar aptitude install
para
instalarlo. Debería reiniciar en cuanto le sea posible una vez que haya
instalado el núcleo nuevo para empezar a beneficiarse de las características
que proporciona la nueva versión del núcleo.
Los más avezados tienen un modo sencillo de compilar su propio núcleo en
Debian GNU/Linux. Instale la herramienta kernel-package
y lea la documentación que
encontrará en /usr/share/doc/kernel-package
.
Siempre que sea posible, es mejor para usted si actualiza el paquete del
núcleo de forma independiente a la actualización principal con
dist-ugprade
, para así reducir las posibilidades de tener
durante un cierto periodo de tiempo un sistema que no se puede
iniciar. Tenga en cuenta que sólo debería hacer esto después de haber
realizado el proceso de actualización mínima del sistema que se describe en
Sección 4.5.6, “Actualización mínima del sistema”.
lenny ofrece un mecanismo para descubrir hardware más robusto que en versiones anteriores. Sin embargo, éste puede provocar cambios en el orden en el que los dispositivos se buscan en el sistema, afectando por tanto al orden asignado a los mismos. Por ejemplo, si tiene dos adaptadores de red asociados a dos controladores diferentes, los dispositivos a los que «eth0» y «eth1» hacen referencia puede que estén cambiados uno por otro. Sepa además que el nuevo mecanismo conlleva que si, por ejemplo, cambia los adaptadores de red en un sistema lenny que esté funcionando, el nuevo adaptador también tendrá un nombre de interfaz nuevo.
Para los dispositivos de red, puede evitar esta reordenación utilizando las
reglas de udev
, más específicamente,
mediante las definiciones en el archivo
/etc/udev/rules.d/z25_persistent-net.rules
[4]. Alternativamente puede usar la herramienta
ifrename para enlazar los dispositivos físicos a nombres
específicos en el arranque. Para más información consulte ifrename(8) y iftab(5). Las dos alternativas (udev
y ifrename) no se
deberían utilizar al mismo tiempo.
En los dispositivos de almacenamiento, puede evitar este reordenamiento
usando initramfs-tools
y
configurándolo para cargar los módulos de los controladores de los
dispositivos de almacenamiento en el mismo orden en el que se cargan
actualmente. Para hacerlo, identifique el orden en el que los módulos de
almacenamiento se cargaron, mediante la salida de la orden
lsmod. lsmod lista los módulos en
orden inverso de carga; es decir, el primer módulo de la lista es el último
que se ha cargado. Tenga en cuenta que esto sólo funcionará para aquellos
dispositivos que el núcleo enumera en un orden estable (como es el caso de
los dispositivos PCI).
Sin embargo, retirar y cargar de nuevo módulos después del arranque inicial
afecta a este orden. Asimismo, su núcleo puede tener algunos controladores
enlazados estáticamente, y sus nombres no aparecerán en la salida de
lsmod. Puede ser capaz de descifrar estos nombres de
controladores y el orden de carga mirando en el archivo
/var/log/kern.log
, o la salida de
dmesg.
Añada esos nombres de módulos al archivo
/etc/initramfs-tools/modules
en el orden en el que
deberían cargarse en el inicio del sistema. Algunos módulos puede que hayan
cambiado de nombre entre etch y lenny. Por ejemplo,
sym53c8xx_2
ahora se llama sym53c8xx
.
Necesitará entonces regenerar su(s) imagen(es) de initramfs con la orden
update-initramfs -u -k all
.
Una vez que esté ejecutando un núcleo de lenny y udev
, podrá reconfigurar su sistema para acceder
a los discos con un nombre abreviado que no dependa del orden de carga de
los controladores. Estos nombres abreviados (también llamados «alias») se
encuentran en el árbol de directorios /dev/disk/
.
Si utiliza un initrd creado con initramfs-tools
para arrancar el sistema, en
algunos casos la creación de los archivos de dispositivos por parte de
udev
pueden producirse demasiado
tarde para que los programas de arranque actúen sobre estos.
El síntoma habitual es que el arranque fallará porque el sistema de archivos
raíz no puede montarse y se accede a un intérprete de línea de órdenes de
depuración. Pero si comprueba posteriormente observará que todos los
dispositivos necesarios existen en /dev
. Se ha
observado este problema en sistemas en los que el sistema de archivos raíz
estaba en un disco USB o en un RAID,
especialmente si se utiliza
LILO.
Para evitar este problema puede utilizar el parámetro de arranque
rootdelay=
. Puede tener que
ajustar el valor del retardo (en segundos) para su propio sistema.
9
La actualización «formal» habrá terminado cuando lo haga aptitude
dist-upgrade
, pero hay algunas otras cosas que debería tener en
cuenta antes del próximo reinicio del sistema.
Si utiliza el cargador de arranque lilo
(que es el cargador de arranque por omisión
para algunas instalaciones de etch) se le recomienda
encarecidamente que vuelva a ejecutar lilo después de la
actualización:
# /sbin/lilo
Tenga en cuenta que es necesario hacer esto aunque no actualizara el núcleo de su sistema, dado que la segunda fase de lilo cambiará por la actualización del paquete.
Debería revisar también los contenidos de su archivo de configuración
/etc/kernel-img.conf
y asegurarse que tiene la opción
do_bootloader = Yes en él. De esta forma se ejecutará
el cargador de arranque tras cualquier actualización del núcleo.
Si se encuentra con cualquier problema en la ejecución de
lilo, debe revisar los enlaces simbólicos en
/
de vmlinuz
e
initrd
así como los contenidos
/etc/lilo.conf
para detectar cualquier inconsistencia.
Su sistema puede no llegar a arrancar si no pudo ejecutar lilo antes de reiniciar el sistema o si el sistema se reinició de forma accidental antes de que pudiera hacerlo. En lugar del indicador de lilo cuando arranque el sistema, sólo observará LI[5]. Para más información de cómo recuperarse ante este error consulte Sección 4.1.3, “Prepararse para la recuperación”.
Algunos usuarios han informado de que una actualización podría provocar que el núcleo no encontrase la partición raíz del sistema después de un reinicio de éste.
En tal caso, el arranque del sistema se parará con el siguiente mensaje:
Waiting for root file system ...
y se mostrará el indicador de órdenes de busybox después de unos segundos.
Este problema puede ocurrir cuando la actualización del núcleo introduzca el
uso de la nueva generación de controladores de IDE. La
convención del nombrado de discos IDE para controladores
antiguos era hda
, hdb
,
hdc
, hdd
. Los controladores nuevos
nombrarán a los mismos discos como sda
,
sdb
, sdc
, sdd
respectivamente. El problema aparece cuando la actualización no genera un
nuevo archivo /boot/grub/menu.lst
que tenga en cuenta
la nueva convención de nombrado. Durante el arranque, Grub pasará al núcleo
una partición raíz del sistema que el núcleo no encontrará.
Si se ha encontrado con este problema después de la actualización, vaya a Sección 4.8.2, “Como recuperarse del problema después de la actualización”. Para evitar el problema antes de actualizar, siga leyendo.
Uno puede evitar completamente este problema usando un identificador para el sistema de archivos raíz que no cambie de un arranque a otro. Hay dos métodos posibles para hacerlo, etiquetando el sistema de archivos, o usando el identificador universal único del sistema de archivos (UUID). Los dos métodos están soportados en Debian desde la versión «etch».
Las dos aproximaciones tienen ventajas y desventajas. La aproximación del etiquetado es más legible, pero pude haber problemas si otro sistema de archivos de su máquina tiene la misma etiqueta. La aproximación del UUID es más fea, pero tener dos UUIDs iguales es casi imposible.
Para los siguientes ejemplos se ha asumido que el sistema de archivos raíz
está en /dev/hda6
. También se ha asumido que su sistema
tiene una instalación funcional de udev y sistemas de archivos ext2 o ext3.
Para implementar el mecanismo de etiquetado:
Etiquete el sistema de archivos (el nombre debe tener < 16 caracteres) ejecutando: e2label /dev/hda6 rootfilesys
Edite el archivo /boot/grub/menu.lst
y cambie la línea:
# kopt=root=/dev/hda6 ro
a
# kopt=root=LABEL=rootfilesys ro
![]() | Nota |
---|---|
No elimine el caracter |
Actualice las líneas kernel
en el archivo
menu.lst
ejecutando update-grub.
Edite el archivo /etc/fstab
y cambie la línea que monta
la partición /
, por ejemplo:
/dev/hda6 / ext3 defaults,errors=remount-ro 0 1
a
LABEL=rootfilesys / ext3 defaults,errors=remount-ro 0 1
El cambio que importa aquí es la primera columna, no necesita modificar las otras columnas de esta línea.
Para implementar el mecanismo de UUID:
Encuentre el identificador único universal de su sistema de archivos, ejecutando: ls -l /dev/disk/by-uuid | grep hda6
Debería obtener una línea similar a esta:
lrwxrwxrwx 1 root root 24 2008-09-25 08:16 d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6
El UUID es el nombre del enlace simbólico que apunta a
/dev/hda6
. Por ejemplo:
d0dfcc8a-417a-41e3-ad2e-9736317f2d8a
.
![]() | Nota |
---|---|
El valor de UUID para su sistema de ficheros será distinto. |
Edite el archivo /boot/grub/menu.lst
y cambie la línea:
# kopt=root=/dev/hda6 ro
a
# kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro
![]() | Nota |
---|---|
No elimine el caracter |
Actualice las líneas kernel
en el archivo
menu.lst
ejecutando update-grub.
Edite el archivo /etc/fstab
y cambie la línea que monta
la partición /
, por ejemplo:
/dev/hda6 / ext3 defaults,errors=remount-ro 0 1
a
UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 / ext3 defaults,errors=remount-ro 0 1
El cambio que importa aquí es la primera columna, no necesita modificar las otras columnas de esta línea.
Esto se aplica cuando Grub le muestra la interfaz del menú para elegir la entrada que quiere iniciar. Si no aparece dicho menú, puede intentarlo hacer aparecer pulsando la tecla Esc antes de que el núcleo arranque. Si no consigue acceder al menú de este modo, intente Sección 4.8.2.2, “Solución número 2” o Sección 4.8.2.3, “Solución número 3”.
En el menú de Grub, resalte la entrada desde la que quiere arrancar. Pulse la tecla e para editar las opciones relacionadas a esa entrada. Verá algo similar a:
root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro initrd /initrd.img-2.6.26-1-686
Maque la línea
kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
pulse la tecla e y reemplace
hd
por
X
sd
(X
X
siendo la letra a
, b
,
c
o d
dependiendo de su sistema). En
este ejemplo la línea sería:
kernel /vmlinuz-2.6.26-1-686 root=/dev/sda6 ro
Pulse la tecla Enter para guardar la modificación. Si otras
líneas muestran hd
, cambie
también esas líneas. No modifique la entrada similar a X
root
(hd0,0)
. Una vez se hayan realizado las modificaciones, pulse la
tecla b. Ahora su sistema debería arrancar con normalidad.
Ahora que su sistema ha arrancado, necesita arreglar este problema permanentemente. Vaya a Sección 4.8.1, “Como evitar problemas antes de la actualización” y aplique uno de los dos procedimientos propuestos.
Arranque con un medio de instalación de Debian GNU/Linux
(CD/DVD) y cuando se le pregunte,
escriba rescue
para ejecutar el modo de rescate. Elija su
idioma, ubicación, mapa del teclado. Después, permítale configurar la red
incluso si no lo hace con éxito. Después de un rato, se le debería pedir
elegir una partición que querrá utilizar como sistema de archivos raíz. Las
opciones propuestas se parecerán a:
/dev/ide/host0/bus0/target0/lun0/part1 /dev/ide/host0/bus0/target0/lun0/part2 /dev/ide/host0/bus0/target0/lun0/part5 /dev/ide/host0/bus0/target0/lun0/part6
Si conoce que partición es su sistema de archivos raíz, elija la correcta. Si no, intente la primera. Si resulta ser una partición inválida como sistema de archivos raíz, intente la siguiente y así sucesivamente. Intentando una después de otra no debería dañar sus particiones y si tiene sólo un sistema instalado en sus discos, debería encontrar fácilmente la partición correcta del sistema de archivos raíz. Si tiene muchos sistemas instalados en sus discos, sería mejor que conociese exactamente cual es la partición correcta.
Una vez elegida la partición, se le propondrán varias opciones. Elija ejecutar una consola en la partición seleccionada. Si le muestra un mensaje de error indicando que no puede hacer eso entonces intente con otra partición.
Ahora debería tener acceso a una consola como el usuario
root
en su sistema de archivos raíz montado en
/target
. Necesita acceder al contenido de los
directorios /target/boot
,
/target/sbin
y /target/usr
. Si
estos directorios se necesitan montar utilizando otras particiones, hágalo
(consulte el archivo /etc/fstab
si no sabe qué
partición montar).
Vaya a Sección 4.8.1, “Como evitar problemas antes de la actualización” y aplique uno de
los dos procedimientos propuestos para arreglar el problema
permanentemente. Entonces escriba exit
para salir de la
consola de rescate y elija reboot
para reiniciar el
sistema como normalmente (no olvide eliminar el medio arrancable).
Arranque desde su distribución LiveCD favorita, como puedan ser Debian Live, Knoppix o Ubuntu Live.
Monte la partición dónde esté su directorio /boot
. Si
no conoce en cual está, utilice la salida de la orden
dmesg para encontrar si su disco es
hda
, hdb
, hdc
,
hdd
o sda
, sdb
,
sdc
, sdd
. Una vez sepa que disco es,
por ejemplo sdb
, ejecute la siguiente orden para ver la
tabla de particiones del disco y encontrar la partición correcta:
fdisk -l /dev/sdb
Asumiendo que tiene montada la partición correcta bajo
/mnt
y que esa partición contiene el directorio
/boot
y su contenido, edite el archivo
/mnt/boot/grub/menu.lst
.
Busque una sección similar a:
## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.26-1-686 root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro initrd /initrd.img-2.6.26-1-686 title Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode) root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro single initrd /initrd.img-2.6.26-1-686 ### END DEBIAN AUTOMAGIC KERNELS LIST
y reemplace cada hda
, hdb
,
hdc
, hdd
por sda
,
sdb
, sdc
, sdd
según
sea necesario. No modifique la línea similar a:
root (hd0,0)
Reinicie el sistema, elimine el LiveCD y su sistema debería arrancar correctamente.
Cuando se ha arrancado, aplique uno de los procedimientos propuestos bajo Sección 4.8.1, “Como evitar problemas antes de la actualización” para arreglar el problema permanentemente.
Una vez hecha la actualización hay ciertas cosas que puede hacer para prepararse para la siguiente versión de la distribución.
Si se ha instalado el metapaquete con la imagen del núcleo como una dependencia automática del anterior, éste estará marcado como instalado de forma automática. Debería corregir esto haciendo:
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
Elimine los paquetes obsoletos y no utilizados tal y como se describe en Sección 4.10, “Paquetes obsoletos”. Debería revisar qué archivos de configuración utilizan éstos y considerar como opción purgarlos para eliminar sus archivos de configuración.
La versión lenny, aunque introduce miles de nuevos paquetes, también retira o deja de distribuir más de dos mil quinientos paquetes antiguos que estaban disponibles en etch. No existe un mecanismo de actualización para estos paquetes obsoletos. Aunque nada le impide que siga usando paquetes obsoletos si así lo desea, el proyecto Debian deja de dar soporte de seguridad a estos un año después de la publicación de lenny[6] y no se ofrecerá otro tipo de soporte durante este tiempo. Lo recomendable es reemplazar dados paquetes con las alternativas disponibles, si es que existen.
Hay muchas razones por las que un paquete puede haberse eliminado de la distribución, a saber: no hay mantenimiento por parte de los desarrolladores originales, no hay ningún desarrollador en Debian que esté interesado en mantener los paquetes, la funcionalidad que ofrecen la ofrece ahora otros programas (o una nueva versión), o ya no se consideran aptos para distribuirse en lenny debido a los errores que presentan. En este último caso los paquetes puede que sigan estando presentes en la distribución “inestable”.
Es fácil detectar qué paquetes de un sistema actualizado están “obsoletos”, dado que las interfaces de gestión de paquetes los marcarán como tal. Si está utilizando aptitude podrá ver el listado de dichos paquetes en la entrada “Paquetes obsoletos y creados localmente”. dselect también ofrece una sección similar pero el listado de paquetes puede diferir.
Además, si ha utilizado aptitude para instalar manualmente paquetes de etch, la herramienta hará un seguimiento de los paquetes que haya instalado y podrá marcar como obsoletos aquellos paquetes que se obtuvieron sólo para cumplir las dependencias pero que ya no se necesitan cuando el paquete se ha eliminado. Además, aptitude, a diferencia de deborphan, no marcará como obsoletos aquellos paquetes que ha instalado manualmente, en contraste con aquellos paquetes que se instalaron automáticamente para cumplir dependencias.
Existen herramientas adicionales que puede utilizar para encontrar paquetes obsoletos como es el caso de deborphan, debfoster o cruft. Le recomendamos deborphan aunque sólo informará (en su modo normal) sobre las bibliotecas obsoletas: paquetes en las secciones “libs” o “oldlibs” que no está utilizando ningún otro paquete. No elimine a ciegas los paquetes que le indiquen estas herramientas, especialmente si utiliza opciones distintas de las de por omisión que pueden dar lugar a falsos positivos. Se le recomienda encarecidamente que revise los paquetes que éstas le sugieren eliminar (esto es: sus contenidos, su tamaño y descripción) antes de eliminarlos
A menudo podrá encontrar más información de por qué un paquete fue eliminado en el Sistema de seguimiento de fallos de Debian. Debería consultar tanto los informes de fallos del propio paquete como los informes de fallos archivados del pseudo-paquete ftp.debian.org.
The list of obsolete packages includes:
Se han divido algunos paquetes de etch en más de un paquete en lenny, generalmente para mejorar la mantenibilidad del sistema. Para facilitar el proceso de actualización en estos casos se ofrecen paquetes “dummy” (tontos, N. del T.) dentro de lenny. Éstos son paquetes vacíos que tienen el mismo nombre que el anterior paquete en etch con un conjunto de dependencias que asegura que se instalen los nuevos paquetes. Estos paquetes “dummy” se consideran obsoletos y puede eliminarlos una vez haya actualizado el sistema.
La mayoría (pero no todas) de las descripciones de los paquetes «dummy»
indican su propósito. Sin embargo, las descripciones de estos paquetes no
son uniformes así que puede que encuentre útil utilizar
deborphan con la opción --guess
para
detectar los que están instalados en su sistema. Tenga en cuenta que algunos
paquetes «dummy» no están pensados para ser eliminados después de una
actualización sino que se utilizan para poder seguir a lo largo del tiempo
la versión actual de un programa.
[2] Esta funcionalidad puede deshabilitarse si añade el parámetro
panic=0
dentro de los parámetros del arranque.
[3] El sistema de gestión de paquetes no permite por regla general que un paquete elimine o reemplace un archivo que pertenezca a otro paquete a menos que se haya indicado que el nuevo paquete reemplaza al antiguo.
[4]
Las reglas que se encuentran en el fichero se han generado automáticamente
por el script
/etc/udev/rules.d/z45_persistent-net-generator.rules
para tener nombres persistentes de las interfaces de red. Borre este enlace
simbólico para desactivar el nombrado persistente de los dispositivo de las
interfaces de red (NIC) realizado por udev
.
[5] Puede encontrar más información sobre los códigos de error en el arranque de lilo en el documento The Linux Bootdisk HOWTO.
[6] O hasta que se publique una nueva versión en ese tiempo. Habitualmente sólo se da soporte a dos versiones estables en un momento determinado.