Saltando de versiones en Ubuntu sin morir en el intento

Maikel Llamaret Heredia Leído 225 veces Tutoriales Ubuntu Debian

Hacer upgrade entre versiones no contiguas de Ubuntu suele ser un problema que roza la catástrofe. Es de esas cosas que te lanzas a hacer y terminas sin sistema operativo y comiéndote las uñas. Lo recomendado por Canonical es hacer el salto solo entre versiones contiguas o entre versiones LTS consecutivas. Pero ¿Podríamos intentar saltar, por ejemplo, de Ubuntu 19.04 a Ubuntu 20.04? Haciéndolo como los simples mortales es muy probable que termine en fracaso. Por suerte en nuestro grupo de Telegram, Pável Milanés, un semiDios de Ubuntu, nos recuerda que existe la antigua vía de hacer upgrades a lo Debian, y para sorpresa de todos: FUNCIONA. Hoy les mostramos la manera de hacer upgrades entre versiones no contiguas de Ubuntu sin morir en el intento.

Todo este tutorial sale de un debate en nuestro grupo de Telegram. Tanto la solución como el texto que a continuación leerán fueron aportados por el usuario Pável Milanés.

La 'vieja vía Debian' de hacer un upgrade de nuestra distro...

En estos días amanecí con ganas de dar el salto, muchos me conocen como un "LTS man", si soy de team Ubuntu y necesito estar en versiones estables por mi trabajo que ahora no viene al caso... Pero amanecí con picazón, busque por internet y noté que varios users reportaban estar bastante complacidos con el desarrollo hasta ahora y faltando casi un mes y medio para el release... que más da.

Voy a saltar de Ubuntu 18.04.4 LTS a Ubuntu 20.04 (en desarrollo)

Como

Simple: haces un update y upgrade y le dices a tu sistema que quieres upgradear a la nueva distro. El comando en ubuntu es do-release-upgrade pero sucede que como 20.04 no es estable ni release oficial todavía, no se puede así no más saltar...

Pero si le pasas el switch "-d" te usa las versiones de desarrollo y en teoría te debe permitir el upgrade... en teoría.

Actualizado y upgradeado me dispongo a la tarea, teniendo un dia de trabajo con amplia accesibilidad a la WiFi ETECSA (si eres un lector no cubano tal vez no entiendas, pero tranquilo, no viene al caso) pues manos a la obra, pero... Resulta que do-release-upgrade -d avanza pero en un punto da un error que no está ni siquiera documentado en ningún resultado de búsqueda del todopoderoso Google que es mucho decir.

Es lógico, estoy saltando a un release que no es estable y está en un develop intensivo, a lo mejor no han pulido eso. Pero, siendo un Debian user desde 2003 apoximadamente recuerdo que hay una vía vieja pero segura, lo que yo llamo el "old Debian way" de hacer los updates (cualquier referencia a The Mandalorian es intensional)

The Old Debian way

Ubuntu es basado en Debian y este truco me ha funcionado en el pasado, así que manos a la obra, primero lo primero:

Requisitos y comentarios
  • Conexión a internet decente, mínimo 1MBps, o sea que se puede hacer desde un nauta hogar o desde un WiFi ETECSA (si no eres cubano, de seguro puedes saltarte este primer requisito)
  • Tiempo y horas de internet, esto va a demorar. En dependencia de cuan lejos esté la distro desde la que saltas hacia la que te diriges, tendrás que descargar entre 600M y 3GB de datos del repositorio (en mi caso 2.98 GB)
  • Paciencia y si es posible este tutorial impreso para imprevistos

Este método me ha funcionado en el 100% de los casos, lo he realizado más de 3-5 veces en mi vida y siempre me ha funcionado, incluso en servidores en producción; pero siempre existe un riesgo.

Como menciono este truco lo he usado con Debian y con Ubuntu, pero debe funcionar en el 99% de las distros que usan Debian como base (Mint, etc)

Mientras maś invasivo seas con tu sistema menos posibilidades tienes de éxito y con invasivo me refiero a modificarlo fuera del software del repo oficial de tu distro, uso indiscriminado de repositorios PPA y uso de archivos del sistema modificados manualmente. Si estás en uno de esos casos, no te ofrecemos garantía de éxito.

Como siempre te recomendamos hacer salvas de la información y las configuraciones, pensando siempre en el peor de los casos.

Nota: se asume en este tutorial que tienes claro que para acciones administrativas del sistema debes trabajar como root, por lo que nos ahorraremos trucos como mostrarte el sudo, etc.

Pasos
  1. Verifica que tu sistema es estable en cuanto a los updates.
apt install -f

Si este comando devuelve que tiene que arreglar algo, síguelo hasta que corrijas el error y repitelo hasta que te diga que no hay nada que arreglar

  1. Deshabilita todo el soft que no sea del repositorio oficial.

Muchas veces terminamos usando repositorios PPA y otros softs que no vienen en el repositorio, es necesario deshabilitarlos, usualmente están en la carpeta /etc/apt/sources.list.d/. Puedes mover todos esos archivos a un lugar diferente, por ejemplo una carpeta en tus archivos.

Y revisa que en el /etc/apt/sources.list no esté añadido alguno a mano que no sea del repositorio oficial.

  1. Decirle a tu sistema que no seguimos los paquetes no oficiales.

Es tan sencillo como hacer esto en consola:

apt update
apt upgrade

Con esto estamos provocando a que se eliminen las referencias activas de los repos que acabas de quitar.

  1. Apuntar el repositorio a la versión destino en mi caso focal, por "Focal Fosa" el nombre en código de la nueva versión

Hay varias maneras de hacerlo, usando sed para sustituir "bionic" por "fosa" o simplemente editando a mano el fichero /etc/apt/sources.list, la elección es suya.

  1. Actualizar con lo nuevo.

A partir de este punto no puedes instalar nada más a la PC hasta que finalice el upgrade, para hacer el update o actualización es simple:

apt update
apt dist-upgrade -d

El primer comando actualiza el listado del nuevo software a instalar y el segundo descarga con vistas a hacer el upgrade; y aquí se pone interesante pues el comando "-d" se limita a solo descargar la info y no hace el upgrade al finalizar.

Esto te permite tener todo en la PC antes de comenzar lo cual es un seguro de vida ante catástrofes. Además esta tarea durará un tiempo, en mi caso fueron más de 5 horas para descargar ~3GB de datos vía WiFi ETECSA.

Una vez que el dist-upgrade halla terminado pues lo repetirás una vez más:

apt update
apt dist-upgrade -d

Y así hasta que te digan que no hay más nada que descargar.

  1. Aplicar el update

Es necesario que si usas un entorno gráfico salgas del mismo en este momento, o sea cerrar sesión y entrar por una consola real, de las que aparecen cuando pulsas CTRL + Left Alt+ F3.

Esta precaución es fundada, pues durante el upgrade puede que la consola virtual en el entorno gráfico sea actualizada y se trabe el update, para ir a lo seguro usa una de las consolas reales que trae tu sistema.

Si es necesario configura tu sistema en la red para que siempre pueda conectarse a internet en caso de necesitarlo, pero no confíes en la interfaz gráfica, usa el método de /etc/interfaces si estas en Debian o un Ubuntu viejo y netplan en los nuevos Ubuntus.

Para aplicar el update necesitas estar atento a tu PC y sin distracciones, pues requerirá de tu atención, así que escoge un momento adecuado, para aplicar el update es simplemente el segundo comando sin la opción "-d"

apt dist-upgrade

Y mantente atento a la consola, hay un gran chance de que algo falle, es normal, si eso ocurre es muy probable que te recomiende algo como lo que sigue, si no lo hace pues ejecuta esto:

apt install --fix-broken

Esto intentará resolver las dependencias o problemas que se hallan presentado, es poco problable que requiera bajar algo de internet, pero si lo hace serán unos pocos MB para corregir algo en la transición.

Repite el comando anterior hasta que te diga que no hay más nada que hacer.

Una vez llegado a este punto fuerza el upgrade nuevamente con esto:

apt dist-upgrade

Continúa hasta que te diga que no hay más nada que hacer.

IMPORTANTE: es posible que te recomiende hacer un apt autoremove No lo hagas eso es más adelante.

Llegado a este punto toca reiniciar con un clásico reboot

  1. ¿Despertar fallido?

Si tu PC inicia bien, felicidades salta al punto siguiente (no entres al interfaz gráfico todavía)

Si no inicia casi siempre es porque el kernel por defecto apunta a uno viejo y no al nuevo, se puede solucionar presionando la tecla escape al inicio para capturar el menú del GRUB, en el cual debes seleccionar las opciones extras o de recuperación y seleccionar el kernel de mayor numeración para iniciar.

Una vez que el sistema inicie no entres al interfaz gráfico todavía pues hay trabajo que hacer

  1. Control de daños y limpieza

Básicamente vamos a limpiar la casa y asegurarnos que no quedo nada por upgradear . También vamos a asegurarnos que el último kernel es el seleccionado por defecto en el arranque, todo eso se logra con los comandos siguientes:

apt dist-upgrade
apt autoremove
update-grub

Cada uno de ellos debe repetirse hasta que no den opciones extras o errores, antes de pasar el siguiente. Una vez hecho esto proceda a reiniciar y disfrute de su sistema actualizado a la nueva versión.

Acciones extras

Alguna de las acciones extras que puedes hacer luego de actualizado el sistema pueden estar relacionadas con:

  • Eliminar viejos kernels del sistema, recuerda que siempre debes tener al menos dos disponibles.
  • Revisar si cuentas con paquetes retenidos y liberarlos, haciendo upgrade luego para actualizarlos.
  • Re-activar los repos PPA cambiando la denominación de la distro para hacer un upgrade uno a uno y subir lo a las versiones actuales.

Conclusiones

El sistema de paquetes de Debian es uno de los más viejos, robustos y probados del mercado, con estos trucos podrás upgradear sistemas que oficialmente son imposibles de migrar sin saltar por versiones intermedias (yo me he saltado las siguientes: 18.10, 19.04 y 19.10) como por ejemplo saltar de una versión 16.04 a 20.04 (inestable) y cosas así impensables.

Siempre existe el riesgo de pérdida de información en los upgrades o incluso de caer en un sistema inestable desde el punto de vista de los paquetes, pero apt puede ingeniárselas para salir airoso en la mayoría de las ocasiones.





Acerca del Autor
Maikel Llamaret HerediaMaikel Llamaret Heredia: Creador y actual Mantenedor del Proyecto SWL-X. Desarrollador y diseñador Web. Cofundador de Web & Media Integrated Solutions. Con más de 10 años de experiencia en la administración de sistemas GNU/Linux. Actualmente uno de los administradores de la Web del Grupo de Usuarios de Tecnologías Libres en Cuba.

Blog Comments powered by Disqus.

Entrada Anterior Siguiente Entrada