Migrando de Debian 5 Lenny a Squeeze 6

Recientemente debían libero la versión 6.0 de su sistema operativo, bajo el nombre código squeeze. Este nuevo sistema operativo tiene muchas mejoras y parches de seguridad así que tarde o temprano nos va a tocar migrar a esta nueva versión de este sistema operativo.

El servidor que voy a actualizar tiene debian lenny y tiene los siguientes paquetes instalados:

  • Apache 2.2.9
  • PHP 5.2.6
  • Mysql 5
  • Vsftpd
  • Squid
  • Kernel 2.6.26-2-686
  • Webmin

Este servidor sirve de proxy, y tiene un WordPress instalado. Tal como lo muestra la siguiente imagen:

Antes de seguir, es necesario que hagan respaldo de toda su información y de todas las configuraciones, en mi caso copie saque respaldo del contenido de las siguientes carpetas y archivos:

/etc/apache2 | /etc/squid | /etc/vsftpd.conf | /etc/mysql

Ademas de esto saque respaldo de toda la información contenida en la carpeta /var/www ya que ahí tengo todos mis sitios web montados.

También saque respaldos de las base de datos de Mysql.

Yo voy a realizar la actualizacion desde una consola de SSH.

Luego de sacar el respaldo hay que revisar el archivo /etc/apt/sources.list en. En mi servidor este archivo contenía solo lo siguiente:

deb http://ftp.us.debian.org/debian/ lenny main
deb-src http://ftp.us.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

Luego procedí a verificar si habían actualizaciones pendientes para instalación. Recomiendo que antes de realizar la actualización a Debian Squeeze, actualicen su Debian Lenny con las ultimas actualizaciones disponibles. Recomiendo que en este punto no tengan ningun programa ejecutándose, especialmente de monitoreo, como por ejemplo, htop, top, apachetop, mytop, etc.

Ejecute el comando apt-get update

proxy:/etc/apt# apt-get update
Hit http://security.debian.org lenny/updates Release.gpg
Ign http://security.debian.org lenny/updates/main Translation-en_US
Hit http://ftp.us.debian.org lenny Release.gpg
Ign http://ftp.us.debian.org lenny/main Translation-en_US
Hit http://security.debian.org lenny/updates Release
Hit http://ftp.us.debian.org lenny Release
Ign http://security.debian.org lenny/updates/main Packages/DiffIndex
Ign http://ftp.us.debian.org lenny/main Packages/DiffIndex
Ign http://security.debian.org lenny/updates/main Sources/DiffIndex
Ign http://ftp.us.debian.org lenny/main Sources/DiffIndex
Hit http://security.debian.org lenny/updates/main Packages
Hit http://ftp.us.debian.org lenny/main Packages
Hit http://security.debian.org lenny/updates/main Sources
Hit http://ftp.us.debian.org lenny/main Sources
Reading package lists… Done

Luego ejecute el comando apt-get upgrade para instalar actualizaciones pendientes:

proxy:/etc/apt# apt-get upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

No hubo necesidad de instalar alguna actualización, luego ejecute el comando apt-get dist-upgrade, y tampoco instalo nada, esto quiere decir que mi servidor Debian lenny esta con las ultimas actualizaciones a la fecha.

proxy:/etc/apt# apt-get dist-upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Nuestro debian lenny ya esta listo para ser actualizado, vamos a la carpeta /etc/apt y editamos el archivo sources.list y lo dejamos de la siguiente manera:

deb http://ftp.us.debian.org/debian/ squeeze main
deb-src http://ftp.us.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

Luego de esto vamos a bajar todos los nuevos paquetes / repositorios. Esto lo hacemos con el comando apt-get update.

proxy:/etc/apt# apt-get update
Get:1 http://security.debian.org squeeze/updates Release.gpg [835B]
Ign http://security.debian.org squeeze/updates/main Translation-en_US
Get:2 http://ftp.us.debian.org squeeze Release.gpg [1671B]
Get:3 http://security.debian.org squeeze/updates Release [38.4kB]
Ign http://ftp.us.debian.org squeeze/main Translation-en_US
Get:4 http://ftp.us.debian.org squeeze Release [79.8kB]
Get:5 http://security.debian.org squeeze/updates/main Packages [68.0kB]
Get:6 http://security.debian.org squeeze/updates/main Sources [17.7kB]
Get:7 http://ftp.us.debian.org squeeze/main Packages [8633kB]
Get:8 http://ftp.us.debian.org squeeze/main Sources [4823kB]
Fetched 13.7MB in 57s (238kB/s)
Reading package lists… Done
proxy:/etc/apt#

Nuestro debian lenny, ya esta listo para ser actualizado a debian squeeze. Esto lo hacemos ejecutando el comando apt-get dist-upgrade.

Después de ejecutar este comando nos va a salir un gran listado de todos los paquetes que va a actualizar, aproximadamente al momento de esta guía eran 112mb de actualizaciones. Vamos a continuar presionando la tecla Y y luego enter. También si se dan cuenta, el proceso de actualización informa que mysql 5.0 va a ser removido. Esperemos que todo salga bien :-). Adjunto la imagen del listado de paquetes a actualizar:

La descarga de todos los archivos puede llevar de unos minutos a horas dependiendo de la velocidad del enlace a internet que tengan.

La lista es enorme:

Luego de la descarga nos va a preguntar si puede usar la consola (shell) /bin/sh en lugar de la /bin/bash (que es la que mas usamos) para mejorar el rendimiento, vamos a seleccionar YES (si) y luego vamos a presionar la tecla enter:

También nos informa que la versión de Grub que tenemos, la 0.97 es obsoleta, así que va a actualizar a la Grub 2.0:

Debian squeeze nos informa que va a arrancar la imagen de arranque de grub 2 desde nuestra versión obsoleta, grub 0.97, después de que nuestro sistema arranque sin problemas vamos a ejecutar el comando upgrade-from-grub-legacy para actualizar nuestro sistema totalmente a Grub 2.

Nos pregunta para confirmar si deseamos hacer esto, seleccionan YES (si) y luego enter.

Nos hara una pregunta de la linea de comando de Grub, seleccionamos OK para continuar.

Luego empieza a instalar algunos paquetes va a configurar libc6, y nos va a preguntar que servicios como mysql, apache, webmin van a ser reiniciados, vamos a continuar presionando Ok.

El proceso de instalación va a continuar, al llegar al paquete libpam0g nos va a pedir reiniciar servicios como cron, atd, vsftpd, exim4, squid vamos a continuar presionando OK.

Luego nos va a indicar que el nuevo Kernel carga diferentes controladores para discos, cd-rom que tengamos instalados, vamos seleccionar YES (si) ahí ya que si no tendríamos que agregar los ID de estos dispositivos manualmente.

Vamos a confirmar los cambios, procedemos seleccionando YES (si).

Nos va a dar un error que no pudo reconocer la configuración del sistema de arranque, esto lo vamos a solucionar después.

Luego de esto nos va a pedir si deseamos sobre escribir la configuración de:

Configuration file `/etc/console-tools/config’

Yo nunca modifique esa configuración, así que voy a seleccionar que si quiero sobre escribirla con la tecla Y y enter, si solo presionamos enter, va a dejar la configuración antigua.

Me paso lo mismo con la configuración de vsftpd, yo voy a sobre escribir mis configuraciones actuales con las configuraciones nuevas:

Luego también hace unos cambios para la actualización a grub2.

Luego otra vez el mismo mensaje de actualización de configuración, solo que ahora con apache2, yo decidí actualizar la configuración a la nueva versión:

Ahora con ports.conf siempre de apache2:

Esto pasara varias veces dependiendo de cuantos paquetes / aplicaciones tengamos instaladas y hayamos modificado sus configuraciones, yo recomiendo que sobre escriban las configuraciones con la nueva versión que nos proporciona las actualizaciones, y como tenemos respaldo de todo, modifiquemos las configuraciones nuevas para que cumplan con nuestros requerimientos.

Luego el proceso de actualización termina y regresamos a la consola, es momento de reiniciar con el comando reboot. :-)

Todo arranco sin ningún problema a excepción de mysql-server. Tal como lo muestra la siguiente imagen:

Al ver el archivo /var/log/syslog encontré el siguiente mensaje:

Mar 21 13:49:28 proxy /etc/init.d/mysql[2350]: #007/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
Mar 21 13:49:28 proxy /etc/init.d/mysql[2350]: error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’

Después de analizar note que pareciera como que mysql no se había instalado, así que decidí volver a ejecutar el comando apt-get install mysql-server, y tenia razón el proceso de instalación inicio:

Mysql 5.1 se instalo sin ningún problema:

proxy:/etc/mysql# apt-get install mysql-server
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
openssl-blacklist libterm-readkey-perl libisccc50 libmysqlclient15off liblwres50 libbind9-50 libisccfg50 x11-common libpq5
Use ‘apt-get autoremove’ to remove them.
The following extra packages will be installed:
mysql-client-5.1 mysql-server-5.1
Suggested packages:
tinyca
The following packages will be REMOVED:
mysql-client-5.0
The following NEW packages will be installed:
mysql-client-5.1 mysql-server mysql-server-5.1
0 upgraded, 3 newly installed, 1 to remove and 0 not upgraded.
Need to get 16.2 MB of archives.
After this operation, 19.0 MB of additional disk space will be used.
Do you want to continue [Y/n]? yy
Get:1 http://ftp.us.debian.org/debian/ squeeze/main mysql-client-5.1 i386 5.1.49-3 [9,605 kB]
Get:2 http://ftp.us.debian.org/debian/ squeeze/main mysql-server-5.1 i386 5.1.49-3 [6,528 kB]
Get:3 http://ftp.us.debian.org/debian/ squeeze/main mysql-server all 5.1.49-3 [65.4 kB]
Fetched 16.2 MB in 15s (1,067 kB/s)
Preconfiguring packages …
(Reading database … 45576 files and directories currently installed.)
Removing mysql-client-5.0 …
Processing triggers for man-db …
Selecting previously deselected package mysql-client-5.1.
(Reading database … 45517 files and directories currently installed.)
Unpacking mysql-client-5.1 (from …/mysql-client-5.1_5.1.49-3_i386.deb) …
Selecting previously deselected package mysql-server-5.1.
Unpacking mysql-server-5.1 (from …/mysql-server-5.1_5.1.49-3_i386.deb) …
Stopping MySQL database server: mysqld.
Selecting previously deselected package mysql-server.
Unpacking mysql-server (from …/mysql-server_5.1.49-3_all.deb) …
Processing triggers for man-db …
Setting up mysql-client-5.1 (5.1.49-3) …
Setting up mysql-server-5.1 (5.1.49-3) …
Installing new version of config file /etc/init.d/mysql …
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

Al entrar al mysql ahi estaban mis bases de datos:

mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| wordpress          |
| wordpress1         |
+——————–+
4 rows in set (0.00 sec)

Al volver a ver el /var/log/syslog encontre que algunas tablas necesitaban actualizarse, ya que me salia el siguiente mensaje de error:

Mar 21 13:55:44 proxy /etc/mysql/debian-start[3324]: error    : Table upgrade required. Please do “REPAIR TABLE `help_category`” or dump/reload to fix it!

Estoy lo solucione reinicianco mysql, despues de reiniciarlo ya no dio el mensaje de error ya que habia actualizado las tablas.

Mar 21 14:00:18 proxy mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
Mar 21 14:00:19 proxy mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql
Mar 21 14:00:19 proxy mysqld: 110321 14:00:19 [Note] Plugin ‘FEDERATED’ is disabled.
Mar 21 14:00:19 proxy mysqld: 110321 14:00:19  InnoDB: Started; log sequence number 0 43655
Mar 21 14:00:19 proxy mysqld: 110321 14:00:19 [Note] Event Scheduler: Loaded 0 events
Mar 21 14:00:19 proxy mysqld: 110321 14:00:19 [Note] /usr/sbin/mysqld: ready for connections.
Mar 21 14:00:19 proxy mysqld: Version: ’5.1.49-3′  socket: ‘/var/run/mysqld/mysqld.sock’  port: 3306  (Debian)
Mar 21 14:00:20 proxy /etc/mysql/debian-start[3650]: Upgrading MySQL tables if necessary.
Mar 21 14:00:20 proxy /etc/mysql/debian-start[3653]: /usr/bin/mysql_upgrade: the ‘–basedir’ option is always ignored
Mar 21 14:00:20 proxy /etc/mysql/debian-start[3653]: Looking for ‘mysql’ as: /usr/bin/mysql
Mar 21 14:00:20 proxy /etc/mysql/debian-start[3653]: Looking for ‘mysqlcheck’ as: /usr/bin/mysqlcheck
Mar 21 14:00:20 proxy /etc/mysql/debian-start[3653]: This installation of MySQL is already upgraded to 5.1.49, use –force if you still need to run mysql_upgrade
Mar 21 14:00:20 proxy /etc/mysql/debian-start[3660]: Checking for insecure root accounts.
Mar 21 14:00:20 proxy /etc/mysql/debian-start[3664]: Triggering myisam-recover for all MyISAM tables

Decidi entrar a mi pagina de wordpress y cargo sin problema alguno, incluso hasta deje unos comentarios de prueba, y todo funcionaba a la perfeccion:

Ahora el servidor esta funcionando con las siguientes versiones de paquetes:

  • Apache 2.2.16
  • PHP 5.3.3-7
  • Kernel 2.6.32-5-686

Decidi reiniciar el sistema y al parecer todavia es necesario ejecutar el comando upgrade-from-grub-legacy ya que al arrancar lo menciona que todavia no estamos funcionando al 100% con grub2.

Necesitamos ejecutar el comando upgrade-from-grub-legacy, si tenemos varios discos duros instalados, es necesario que veamos el contenido del archivo /etc/fstab para ver en que disco esta montado el /boot o /. En mi caso como mi servidor solo tiene un disco duro, esto quiere decir que mi sistema operativo esta montado en el /dev/sda.

# /dev/sda1       /               ext3    errors=remount-ro 0       1

# /dev/sda5       none            swap    sw              0       0

En la pantalla que me sale el /dev/sda asi que lo voy a seleccionar con la barra espaciadora y luego con los cursores me voy a la opciond e ok  y luego presiono enter:

Luego de esto, nos indicara que no encontro ningun error:

Installation finished. No error reported.
Generating grub.cfg …
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
Found linux image: /boot/vmlinuz-2.6.26-2-686
Found initrd image: /boot/initrd.img-2.6.26-2-686
done

GRUB Legacy has been removed, but its configuration files have been preserved,
since this script cannot determine if they contain valuable information.  If
you would like to remove the configuration files as well, use the following
command:

rm -f /boot/grub/menu.lst*

Ahora nos toca reiniciar con el comando reboot.

Al reiniciar el servidor, vamos a ver que ya esta totalmente instalado el Grub 2:

El servidor arranco mucho mas rapido y sin ningun problema alguno :-)

El debian squeeze funciona mucho mas rapido, estare probandolo y de ser necesario actualizare este tema, de no haber sido por el problema de mysql 5.1. La actualizacion de debian lenny a squeeze hubiera sido mucho mas facil. Espero que les sirva esta guía, les deseo mucha suerte.

Etiquetado con: , , ,
Publicado en: Articulos, Linux
2 comments on “Migrando de Debian 5 Lenny a Squeeze 6
  1. hosmar dice:

    Muchas gracias por la guía, me fue super útil para actualizar, gracias

  2. Ever dice:

    Gracias ya tengo squeeze.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>