Actualizar Ubuntu 18.04 LTS desde la línea de comandos

Publicado por P. Ruiz en

Introducción

En Ubutu, 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.

Como es lógico, debemos incluir la contraseña de la cuenta para actuar con dichos privilegios.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-001

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.

En nuestro ejemplo, únicamente 5.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-002

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

Para comprobar la información que ofrece, lo escribimos precedido de la orden sudo.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-003

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.

Incluso se indica el número de la versión local y el de la versión remota.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-004

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

Como antes, la orden sudo nos permite ejecutar apt con privilegios administrativos.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-005

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.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-006

A partir de aquí, veremos cómo se desarrolla el proceso de instalación/actualización de paquetes…

Sólo nos queda esperar a que se complete.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-007

Al final, el sistema muestra la palabra Done (Hecho) y recuperamos el prompt del sistema.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-008

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

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-009

En nuestro ejemplo, como ya habíamos actualizado con upgrade no se han encontrado nuevos paquetes por actualizar.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-010

Paracuando sea necesario, intentará actualizarPor lo tanto, el comando dist-upgrade puede eliminar algunos paquetes. El archivo /etc/apt/sources.list contiene una lista de ubicaciones desde las que recuperar los archivos de paquetes deseados. Vea también apt_preferences(5) para un mecanismo para anular los ajustes generales para paquetes individuales.

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

Como antes, escribimos el comando y pulsamos la tecla Intro.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-011

… 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-Ubuntu-1804-LTS-desde-la-linea-de-comandos-012

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.

Seguimos las indicaciones de crontab y elegimos la opción 1.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-013

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.

Nosotros simplemente pondremos el cursor al final del archivo

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-014

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.

Actualizar-Ubuntu-1804-LTS-desde-la-linea-de-comandos-015

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.