Actualizar Ubuntu 18.04 LTS desde la línea de comandos
Introducción
En Ubuntu, y en general en todas las distribuciones GNU/Linux que basan su funcionamiento en paquetes deb, utilizan la utilidad apt-get (o su versión abreviada, apt) para actualizar el sistema y las aplicaciones instaladas que provengan de repositorios.
No obstante, como apt-get utiliza diferentes comandos según el objetivo que estemos persiguiendo (
update,
upgrade,
dist-upgrade,
full-upgrade y
do-release-upgrade), suele existir cierta confusión con cuál debe utilizarse en cada momento. Pero no te preocupes, hoy trataremos de aclarar definitivamente las dudas que puedas tener.
El artículo de hoy lo desarrollaremos sobre Ubuntu Server pero, para ponerlo en práctica sobre la versión de escritorio, solo tienes que abrir una ventana de terminal. Por ejemplo, usando la combinación de teclas Alt + Control + T.
El comando update
El comando update obtiene la información relativa a los paquetes que contengan los repositorios que haya registrados en nuestro sistema.
Como recordarás, los repositorios son lugares de Internet que ofrecen software en forma de paquetes. También ofrecen metadatos, es decir, información sobre dichos paquetes.
Los repositorios que utiliza el sistema están recogidos en el archivo /etc/apt/sources.list
En definitiva, el comando update obtiene la información actualizada relacionada con los paquetes que tengamos instalados en el sistema. Así podrá saber si alguno de nuestros paquetes es más antiguo que los almacenados en los repositorios. Sin embargo, update no descarga ni instala ningún paquete, solo registra las diferencias.
Para ejecutarlo, solo tendremos que escribir lo siguiente:
sudo apt update
La orden sudo nos permite ejecutar apt con privilegios administrativos.
Al hacerlo, comienza la descarga de información desde los repositorios. Al final obtenemos un resumen del tamaño de la descarga y el tiempo empleado.
Al final nos informa sobre el número de paquetes que podemos actualizar.
Al final de su salida, el propio comando update nos dice cómo podemos obtener información más detallada sobre los paquetes que pueden actualizarse.
Se trata del siguiente comando:
sudo apt list --upgradable
Al hacerlo, obtenemos la lista con el nombre de cada paquete que tiene una versión más moderna en el repositorio que en nuestro sistema.
El comando upgrade
El comando upgrade utiliza la información descargada por update para instalar las últimas versiones de los paquetes actualizables, es decir, aquellos que tienen una versión más moderna en el repositorio que en nuestro equipo.
También podrán instalarse nuevos paquetes cuando éstos sean necesarios para satisfacer dependencias. Sin embargo, en ningún caso se eliminarán paquetes existentes. Cuando una actualización necesite de la desinstalación de un paquete instalado, dicha actualización no se llevará a cabo.
Para ejecutarlo, solo tendremos que escribir lo siguiente:
sudo apt upgrade
Al hacerlo, el sistema nos muestra información sobre el proceso que va a realizar: el nombre y el número de paquetes que serán actualizados y el nombre y número de paquetes nuevos que habrá que instalar para satisfacer las dependencias. También el número de paquetes que habría que eliminar y el número de paquetes que quedarán sin actualizar (si fuese el caso).
Por último, veremos la cantidad de información que será preciso descargar y el espacio total que será preciso ocupar en el disco para llevar a cabo la tarea.
Una vez leida la información, si estamos de acuerdo, bastará con pulsar la tecla S para continuar con el proceso.
A partir de aquí, veremos cómo se desarrolla el proceso de instalación/actualización de paquetes…
El comando dist-upgrade
El comando dist-upgrade, además de actualizar los paquetes disponibles, es capaz de administrar el cambio de dependencias con las nuevas versiones encontradas. Además, en caso de conflicto, tratará de actualizar preferentemente los paquetes más importantes.
Esto significa que el comando dist-upgrade puede eliminar algunos paquetes.
Para ejecutarlo, solo tendremos que escribir lo siguiente:
sudo apt dist-upgrade
Como en los casos anteriores, la orden sudo nos permite ejecutar apt con privilegios administrativos.
En nuestro ejemplo, como ya habíamos actualizado con upgrade no se han encontrado nuevos paquetes por actualizar.
El comando full-upgrade
El comando full-upgrade ha aparecido con apt (la nueva versión de apt-get). Sin embargo, tiene exactamente la misma funcionalidad que dist-upgrade, por lo que son intercambiables.
El comando do-release-upgrade
Por último, el comando do-release-upgrade se encarga de actualizar el sistema de una versión a la siguiente.
No obstante, antes de poner en marcha este comando, se recomienda asegurarse de que el sistema operativo está completamente actualizado. Es decir, debemos ejecutar sucesivamente los siguientes comandos:
sudo apt update sudo apt upgrade sudo apt dist-upgrade
Una vez completada su ejecución, escribiremos lo siguiente:
sudo do-release-upgrade
… Aunque en nuestro caso, descubrimos que no hay una nueva versión LTS disponible.
También nos informa de los cambios que habría que hacer en el archivo /etc/update-manager/release-upgrades para actualizar a una versión que no sea LTS.
Actualizar el sistema automáticamente con la frecuencia deseada
Todo lo que hemos visto hasta ahora necesita que una persona escriba los comandos de forma manual cada vez que sea necesario realizar algún tipo de actualización. Sin embargo, automatizarlo es tan sencillo como programar una tarea que descargue las actualizaciones pendientes y, a continuación las instale.
Esto lo haremos, por ejemplo, todos los días a una hora en particular (en el caso de este artículo, lo haremos a las 3 AM, porque suponemos que a esa hora el servidor no tendrá una carga de trabajo excesiva).
Para empezar, ejecutaremos el siguiente comando:
sudo crontab -e
Esto hace que crontab abra un editor de textos de modo que podamos definir una tarea. Si es la primera vez que lo hacemos, nos ofrecerá la posibilidad de elegir entre los editores de textos instalados, aunque nos recomienda que utilicemos nano.
Como aún no tenemos ninguna tarea definida, el sistema nos ofrece un archivo vacío… Bueno, con una serie de líneas de comentario que nos sirven a modo de guía. Si tenemos claro cómo funciona crontab, podemos borrarlas.
A continuación, escribimos la tarea programada:
00 3 * * * root apt-get update -y && apt-get dist-upgrade –y
Esto hará que todos los días, a las 3:00, se ejecuten con las credenciales de root dos comandos apt-get:
-
El primero añadirá al sistema todas las actualizaciones que hayan aparecido en los repositorios desde la última actualización.
-
La segunda comprobará si hay disponible una actualización general del sistema a la versión siguiente. Si la hay, la instala.
Los caracteres -y al final de cada comando hacen que éstos asuman Yes como respuesta a cualquier pregunta.
Cuando terminemos de escribirla, salimos del editor pulsando las teclas Ctrl + X y asegurándonos de guardar los cambios.
Si necesitas conocer más detalles sobre la programación de tareas en modo texto, puedes consultar en SomeBooks.es nuestro artículo Programar una tarea para un momento concreto desde la terminal de Ubuntu 18.04 LTS.
Y esto es todo por el momento. Espero que te resulte útil.