La actualización limpia de una distribución Debian Lenny (estable actual) a Squeeze (testing actual) no es una tarea tan simple como un dist-upgrade, posee algunos detalles que deben ser tomados en cuenta a la hora de lograr una versión limpia de Debian Squeeze.
Lo primero que debemos hacer es actualizar el sistema a la última versión de Lenny, esto para evitar inconvenientes de paquetes:
aptitude safe-upgrade
Luego que hemos actualizado, debemos cambiar nuestros repositorios de Debian Lenny a Squeeze, esto se hace editando el archivo:
/etc/apt/source.list
Y cambiar donde diga “Lenny” (o stable) a “Squeeze” (o testing).
Un ejemplo de una línea sería:
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
Guardamos nuestro archivo y ejecutamos la actualización de los repositorios y la limpieza de la caché de APT:
aptitude update && apt-get autoclean
Nota: en algunas situaciones, esto sería más que suficiente para luego ejecutar un “aptitude dist-upgrade”, sin embargo, vamos por la parte más “cuidada y segura” (paranóica).
Luego, y para evitar problemas en la inconsistencia de los paquetes, instalamos:
apt-get install apt aptitude dpkg debian-keyring locales
Esto actualizará a Squeeze los paquetes encargados de la instalación.
ACTUALIZACION: Ahora bien, algunas personas podrían experimentar problemas con el sys.rc (sistema encargado de los guiones de arranque de los servicios) si hacen el dist-upgrade ahora, más que todo cuando corres servidores y tienes muchos servicios ejecutándose, podrías terminar con un sistema inconsistente, o peor aún, sin servicios; ahora que estas con repositorios en squeeze, es bueno “subir” esas aplicaciones conflictivas (como mysql, exim, postfix, postgresql, proftpd, samba y/o openldap).
un ejemplo sería:
aptitude install mysql-server postgresql exim4-base locales tzdata
(Gracias a Octavio Rossell “TR0N” por probar la receta y darse cuenta de este fallo).
Debemos Actualizar ante todo el Kernel, a una versión “Squeeze” pero sin incluir el resto de la paquetería como por ejemplo las UDEV que ciertamente darán muchos problemas.
Si tienes una versión muy vieja de kernel, podrías tener conflicto durante el dist-upgrade, puesto que este necesita instalar una versión de kernel muy nueva (2.6.32) y con esta una versión nueva de las udev (158-1), cambiar las udev de una versión a otra superior a 150 es básicamente IMPOSIBLE, así que por seguridad, es preferible que subamos primero el kernel a una nueva versión:
Lo buscamos:
aptitude search linux-image
Y lo instalamos:
aptitude install linux-image-2.6.32-5-686
NOTA: tomen en cuenta, que la versión y la arquitectura podría variar en su equipo, por favor, ejecuten:
uname -m
Para ver la arquitectura de su equipo (i386, entonces usar kernel 486 o 686, x86_64 entonces usan kernel amd64).
Luego de instalado el nuevo kernel, reinicien el equipo:
reboot
Antes de ejecutar la primera subida, confirmemos que nada conflictivo está en ejecución, por ejemplo, GNOME, para ello, podemos cambiar a una consola virtual (CTRL+ALT+F1) y reducimos el nivel de init a 3 y detenemos el gnome:
/etc/init.d/gdm stop
y
init 3
Con esto, ya estamos listos para ejecutar:
apt-get dist-upgrade
Esto cargará las udev compatibles con el kernel anterior, instalará grub2, actualizará el resto de aplicaciones y nos llevará “realmente” a Debian Squeeze.
Luego, volvemos a reiniciar:
reboot
Lo que debemos ejecutar con plena seguridad luego de reiniciar es un full-upgrade, para que todo lo que quedaba en lenny se actualice:
aptitude full-upgrade
Veremos cosas como esta:
Configurando udev (158-1) ... ... Configurando linux-image-2.6.32-5-686 (2.6.32-18) ... Running depmod. Running update-initramfs. update-initramfs: Generating /boot/initrd.img-2.6.32-5-686
Veremos como se ha actualizado nuestro sistema de arranque a grub2 (desde grub1), aunque seguirá levantando usando grub1 (menu.lst), para eliminar definitivamente a grub1 ejecutamos:
upgrade-from-grub-legacy
El cual preguntará en cual dispositivo (si en /boot o en el MBR del disco /dev/sda) se instalará, en mi caso como no tengo otro S.O lo monté en /dev/sda (disco principal).
Volvemos a reiniciar (solo para comprobar que ahora solo tenemos grub2)
reboot
Y ya, por último, comprobamos la salud del Squeeze:
aptitude update && aptitude dist-upgrade
(no debería instalar nada más)
cat /etc/debian_version
Debería retornar “squeeze/sid”
y ya (si queremos ahorrar espacio) podemos limpiar nuevamente el cache con:
apt-get autoclean
Y ahora, si estamos (sin inconvenientes de ningún tipo) en Debian Squeeze.