
Actualizando de Ubuntu 14.04 a Ubuntu 18.04
Autor: fjavimartin
Fecha de Creación: 05/05/2020
Categorías:
Recientemente he tenido que actualizar cuatro máquinas desde ubuntu server 14.04 a ubuntu server 18.04 y he hecho la travesía por el desierto. Comparto en este artículo como superar todas y cada una de los problemas con los que me he encontrado.
1. Pasos previos
Comenzamos en nuestra instalación de Ubuntu 14.04 y lo primero que haremos será actualizar nuestro repositorio:
Comenzamos en nuestra instalación de Ubuntu 14.04 y lo primero que haremos será actualizar nuestro repositorio:
#apt-get update
Actualizamos todos los paquetes:
#apt-get upgrade
Finalizamos la instalación eliminando de manera inteligente todos los paquetes que no sean necesarios:
#apt-get dist-upgrade
Sí, es correcto, podíamos haber utilizado directamente apt-get dist-upgrade para actualizar todos los paquetes y eliminar todo lo que sobre, pero, serán manías de viejo, prefiero ejecutar primero el upgrade y después el dist-upgrade.
Os recuerdo las diferencias entre ambos comandos:
- apt-get upgrade: Solo actualiza cuando hay un nuevo paquete disponible en la plataforma.
- apt-get dist-upgrade: Instala o elimina paquetes de manera inteligente comprobando las dependencias de cada uno, actualizando los más importantes en detrimento de los que considera menos importantes.
2. Actualizando de Ubuntu 14.04 a Ubuntu 16.04
Ya tenemos ubuntu actualizado correctamente y vamos con el paso de versión:
#do-release-upgrade
Nos encontramos con la primera posible dificultad:
Can not upgrade
Your python install is corrupted. Please fix the '/usr/bin/python'
symlink.
Una de las cosas que comprueba este script es que la versión de python a la que apunta el enlace /usr/bin/python es correcta. Para esta versión de ubuntu deberá apuntar a python 2.7 y la forma de resolver este problema es relativamente sencilla:
# cd /usr/bin
# ln -s python2.7 python
Una vez superado este problema deberíamos poder actualizar correctamente a Ubunt 16.04.
3. Actualizando Ubuntu 16.04 a Ubuntu 18.04
Repetimos todos los pasos previos que hicimos con Ubuntu 14.04.
#apt-get update
#apt-get upgrade
#apt-get dist-upgrade
Comenzamos con la actualización:
#do-release-upgrade
El primer error posible es muy parecido al de la anterior actualización:
Can not upgrade
Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink.
Chequearemos el fichero de log que está generando el script de actualización en /var/log/dist-upgrade/main.log y revisaremos los mensajes de error donde es posible que encontremos algo parecido a esto:
2019-09-02 20:58:08,686 DEBUG _pythonSymlinkCheck run
2019-09-02 20:58:08,687 DEBUG python symlink points to: '/etc/alternatives/python', but expected is 'python2.7' or
'/usr/bin/python2.7'
2019-09-02 20:58:08,688 ERROR pythonSymlinkCheck() failed, aborting
Aunque en el error nos menciona el enlace python3 vemos que el error está relacionado con el enlace a python que deberá apuntar a la versión 2.7. Repetiremos los comandos del anterior apartado:
# cd /usr/bin
# ln -s python2.7 python
Para el caso en el que continuemos con el mismo error volveremos a chequear el fichero de log porque seguramente ahora tengamos el problema con el enlace a python3. Seguramente que ahora mismo python3 apunte a la versión 3.5 de python por lo que simplemente podemos cambiarla a la versión 3.4 y funcionará:
# cd /usr/bin
# ln -s python3.4 python
Para el caso en el que no tengamos python 3.4 instalado podemos instalarlo desde un repositorio con los siguientes comandos:
#add-apt-repository ppa:deadsnakes/ppa
#apt-get update
#apt-get install python3.4
Lo que estamos haciendo es añadir el repositorio deadsnakes e instalar el paquete desde allí. Encontraremos información relacionada con el repositorio en https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa. El motivo por el que necesitamos instalar python 3.4 de esta manera es que no hay paquete candidato para esta versión en Ubuntu 16.04 y la otra manera de instalarlo es compilarlo manualmente siguiendo las instrucciones de https://github.com/mhbashari/Install-Python3.4-on-Ubuntu-16.04.
El siguiente error con el que nos podemos encontrar al volver a ejecutar do-release-upgrade es el siguiente:
Traceback (most recent call last):
File "/usr/bin/do-release-upgrade", line 11, in <module>
from UpdateManager.Core.MetaRelease import MetaReleaseCore
File "/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py", line 25, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
La solución no es complicada, tendremos que renombrar una librería:
/usr/lib/python3/dist-packages# cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so
En este caso nuestra librería corresponde con la versión 3.5 de python, pero puede corresponder con la versión 3.4 y tendríamos que hacer exactamente lo mismo.
4. Conclusiones
Una vez actualizadas cuatro máquinas a la última versión LTS de Ubuntu os puedo asegurar que podría ganarme la vida haciendo solamente esto.
Os dejo referencias a distintos artículo y si habéis tenido algún error más o podéis aportar alguna solución alternativa podéis dejarla en los comentarios.
Disfrutar!!!!!!
Referencias
https://askubuntu.com/questions/802279/how-to-install-python-3-4-5-from-apt
https://askubuntu.com/questions/1069087/modulenotfounderror-no-module-named-apt-pkg-error
https://github.com/mhbashari/Install-Python3.4-on-Ubuntu-16.04
https://unix.stackexchange.com/questions/410579/change-the-python3-default-version-in-ubuntu