lunes, febrero 14, 2011

De Lenny a Squeeze




Este fin de semana, por fin, he actualizado mi Debian de Lenny a la nueva versión estable , Squeeze. A diferencia de otras veces, donde lo unico que hacía era cambiar el sources.list y como los valientes ( o inconscientes,jeje) haciamos un "apt-get dist-upgrade"; esta vez he querido asegurar el proceso para evitar en lo posible, los problemas y no terminar instalando todo de cero.

Aquí voy a poner los puntos mas importantes que he seguido, aunque la información mas completa la teneis en la Notas de publicación de Debian GNU/Linux 6.0 (squeeze), 32-bit PC , y concretamente para la actualización en esta parte:

Actualización desde Lenny

Para actualizaciones limpias también teneis la Guía de Instalación de Debian

1. Situación Inicial.

El mismo día de la aparición de Squeeze como distribución estable, se realizo una actualización bastante importante en Lenny, no solo por el numero de paquetes, que llegaban a mas de 300; sino que además se actualizaba a una versión nueva de kernel; en mi caso la 2.6.32-5-686-bpo; creo que fue debido a que tenía en los repositorios los Backports de Debian ( creo que en Squeeze estan incluidos, por eso no hay que añadirlos en el sources.list) y es importante tenerlo en cuenta; pues en el caso de tener el kernel original de Lenny (2.6.26-2-686) se deberia hacer el proceso que comento en dos partes:

1º Actualización mínima: apt-get safe-ugrade
2º Actualizar el nucleo y udev; por lo visto udev (gestor de dispositivos del kernel linux) de squeeze necesita un nucleo superior a 2.5.26; por lo que en la instalación deberiamos primero instalar el nucleo de squeeze 2.6.32-5-686 y despues instalar udev.
3º Actualización completa; apt-get dist-upgrade. En mi caso, al tener el nucleo bpo instalado pase directamente a este punto después de realizar lso siguientes pasos:

2. Copia de Seguridad

Bueno ya sabemos como va esto, nunca se sabe si al final tendremos que reinstalar; además en mi caso tengo la Home en la misma partición que el sistema (/) por lo que en otra partición hice copias de estas carpetas y archivos:

/home/juanjo
/etc/
/boot/ ----------> se va a actualizar Grub a la versión 2.
/var/lib/dpkg
/var/lib/apt/extended_states
/var/lib/aptitude/pkgstates -----> Para los que como yo, utilizan aptitude

Y también la salida de este comando, guardado como un archivo de texto:

dpkg --get-selections "*" > dpkg.txt

3. Verificar el estado de los paquetes.

Primero se mira con aptitude que no haya paquetes pendientes. Para ello una vez ejecutado aptitude desde un terminal (como root), le damos a la tecla g y veremos las tareas pendientes. En mi caso tenia varios paquetes que no se podian actualizar y tuve que desinstalarlos.

También podemos ver el estado de nuestros paquetes con esta orden:

# dpkg --audit

Y desbloquear los paquetes retenidos (hold), que podemos ver con esta orden:

# dpkg --get-selections | grep hold

4. Actualizar la fuentes para APT

Generalmente lo unico que hacia era cambiar lenny por squeeze, pero realmente hay que ver si la fuentes en diferentes distribuciones y diferentes mirrors coinciden, asi que despues de Googlear un poco, el archivo /etc/apt/sources.list quedo asi:

#

deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
#deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free


deb http://security.debian.org/ squeeze/updates main contrib non-free

#deb-src http://security.debian.org/ squeeze/updates main contrib non-free


deb http://ftp.fr.debian.org/debian/ squeeze-proposed-updates main contrib non-free

#deb-src http://ftp.fr.debian.org/debian/ squeeze-proposed-updates main contrib non-free

#Debian Multimedia

deb http://www.debian-multimedia.org squeeze main non-free

#VirtualBox


deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free


#Wine


deb http://www.lamaresh.net/apt squeeze main

Para los puristas con quitar la parte "contrib non-free" tendran un sistema totalmente libre.

Ahora solo queda actualizar nuestro repositorio de paquetes, desde una consola y como root, ponemos:

# apt-get update

5. Actualización del sistema.

*********************************************************************************
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.
**********************************************************************************

Por tanto, vamos a hacerlo en una consola virtual en modo texto ( si fuera remoto, lo ideal sería mediante ssh) y nos interesa que la sesión X este cerrada. Como estoy en Gnome, si cerramos el gestor de acceso a X, gdm, nos quedaremos en el login de una consola virtual tty; por tanto en Debian se ejecuta esta orden como root:

# /etc/init.d/gdm stop

Y ya podemos actualizar:

# apt-get dist-upgrade

Durante el proceso, que duro varias horas; nos preguntará varias veces si queremos guardar varios archivo de configuración o actualizarlo; como por sistema, siempre esta predeterminado guardarlo; asi lo hice en general. Solamente tuve un problema al actualizar el programa phpmyadmin, tenia que actualizar las bases de datos y no fue capaz; se hizo una backup del archivo original en /var/cache/dbconfig-common/backups; y la verdad es que el programa funcionó perfectamente después; no le daremos mas importancia.

Una buena recomendación es copiar los datos de los avisos que aparezcan, aunque en ingles si que podemos ver al final una orden que nos ayudara a resolver los problemas derivados Ej. Con la actualización de sysv-rc, daba información del proceso y que si queria volver a configurarlo tendría que ejecutar la orden:

# dpkg-reconfigure sysv-rc

En esta actualización pasamos a grub2; pero primero haremos una prueba con el grub-legacy; al reiniciar veremos un menu de grub un poco especial, donde la primera entrada es para probar grub2; si funciona bien ( yo espere despues de varios reinicios) debemos ejecutar esta orden como root:

# upgrade-from-grub-legacy

6. Problemas.

Lo primero es felicitar al equipo debian, pues todo el proceso fue muy fluido y todo ha terminado muy bien.

El único problema realmente no es directamente culpa de debian; en mi caso tengo una tarjeta gráfica Nvidia GeForce 7300 LE y me gusta tenerla completa, con la posibilidad de 3D; por lo que le instalo los drivers propietarios de Nvidia ( que me funcionan muy bien). En este caso, no habia manera, me baje incluso los últimos drivers ( NVIDIA-Linux-x86-260.19.36.run) pero no lo pude instalar. Como es lógico. este mismo problema ya lo había tenido mas gente; por lo que la solución era desinstalar nouveau; que son los drivers nvidia libres que se estan desarrollando en sustitución de los nv (que a mi nunca me han ido bien), la pena es que actualmente solo tienen 2D, asi que la solución es desinstalar nouveau (por cierto la tty se veían muy bien con nouveau..) con la orden:

# apt-get remove xserver-xorg-video-nouveau

Y por si levanta cabeza, bloquearlo en el archivo /etc/modprobe.d/blacklist.conf , colocando este texto al final (siempre como root):

blacklist nouveau

Ahora reiniciamos (necesario) y ya podemos instalar los drivers propietarios de Nvidia.

De esta manera, ya tenemos Squeeze, no ha sido muy dificil y además hemos aprendido que preparando las cosas bien, en la mayoria de las veces, el resultado siempre es positivo.

Espero que estas notas sean utiles, pues aunque para tu PC de escritorio, la versión de estable se pueda quedar corta; si es el mismo ordenador con el que trabajas, te das cuenta que la versión estable nunca te va a dejar tirado y es un seguro para el dia a dia.

Un saludo
[JJ]