Mantén Linux al día: la forma correcta de actualizar tus repositorios
A la hora de instalar aplicaciones y programas en Linux hay varias formas de hacerlo. Los usuarios más avanzados pueden optar por descargar el código fuente desde la web del desarrollador y compilarlo directamente en su ordenador. Algo muy lento y poco práctico en realidad. Los usuarios más inexpertos suelen optar por la vía fácil: buscar y descargar el binario (por ejemplo, el deb) e instalarlo, desde el gestor de paquetes, haciendo doble clic. Como en Windows. Y, en tercer lugar, tenemos a los usuarios intermedios que buscan comodidad y facilidad y hacen uso de los repositorios de Linux para descargar, instalar y actualizar sus programas.
¿Qué son los repositorios de Linux?
Los repositorios son una de las mejores características que tiene Linux. Un repositorio es una lista de programas, generalmente siempre actualizada, que nos permite buscar y descargar fácilmente todo tipo de programas y herramientas en nuestra distribución.
Gracias a los repositorios vamos a poder tener un lugar seguro y fiable desde el que descargar software y las últimas actualizaciones de todos nuestros programas. Estos programas se instalarán sin ningún tipo de problema de dependencias, y además podremos actualizar todo nuestro repertorio de programas con un sencillo comando.
Las desarrolladoras de las distros suelen incluir sus propios repositorios con programas útiles. Además, muchas desarrolladoras mantienen sus propios repositorios independientes para distribuir sus programas. Incluso cualquier usuario puede crear y mantener su propio repositorio, muy útil, por ejemplo, para distribuir listas de software.
Distintos tipos de repositorios en Ubuntu
Cuando instalamos Ubuntu, la distro instala una serie de repositorios pertenecientes a distintos canales:
- Main: el repositorio instalado por defecto. Consiste en software libre FOSS que puede ser distribuido libremente y sin restricciones.
- Universe: incluye software gratis y de código abierto, pero no puede garantizar las actualizaciones regulares de seguridad.
- Multiverse: incluye software que es de la FOSS. Debe ser el usuario quien analice las licencias y decida si puede, o no, usar estos programas de forma legal.
- Restricted: dentro de este canal podemos encontrar software de código cerrado. Es utilizado, por ejemplo, para distribuir los drivers de NVIDIA, entre otros muchos.
- Partner: incluye software propietario que ha sido empaquetado por Canonical.
Y además de estos repositorios, también podemos añadir repositorios de terceros a nuestra distro Linux para instalar otro tipo de software de forma segura.
Los pasos que vamos a ver a continuación se han realizado sobre Ubuntu, pero deberían ser iguales para cualquier distro basada en Debian.
Cómo añadir nuevos repositorios a la lista de software
Para ver la lista de repositorios que tenemos en nuestra distro Ubuntu, lo que debemos hacer es abrir un Terminal (Control + Alt + T) y ejecutar en este el siguiente comando:
sudo gedit /etc/apt/sources.list
En caso de que no funcione, o no tengamos gedit instalado en nuestra distro, podemos hacerlo con el siguiente, acudiendo al editor «nano».
sudo nano /etc/apt/sources.list
Como veremos, se nos abrirá una lista con todos los repositorios que tenemos en nuestra distro. Los repositorios (por ejemplo, deb http://es.archive.ubuntu.com/ubuntu/ bionic-updates main restricted) que empiecen sin # son aquellos que se están utilizando. Por otro lado, los que aparecen al principio con un # son aquellos que tenemos instalados, pero están deshabilitados.
Si queremos añadir un repo nuevo, tan solo debemos añadirlo, de la siguiente forma, al final del archivo de texto:
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
Guardamos los cambios y listo. Eso sí, antes de actualizar los repositorios e instalar ningún programa debemos instalar las claves de seguridad de dicho repositorio. Estas se suelen ofrecer junto al PPA, y a continuación vamos a ver un ejemplo con el repo oficial de Google Chrome.
Ejemplo para añadir repositorio de Google Chrome desde Terminal
Para añadir desde terminal un repositorio, o PPA, de Linux, debemos hacerlo de la siguiente manera. Lo primero será buscar en Internet el repositorio que queremos añadir. En el caso de Google Chrome (este ejemplo), podemos encontrarlo en la web de Google.
En el terminal, ejecutaremos el siguiente comando para añadir las claves de los repositorios oficiales de Google a nuestro Linux. De lo contrario, el software de los repositorios no se podrá validar y nos devolverá error:
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
Una vez ejecutado el anterior comando, ya podemos añadir el repositorio a la lista de repositorios de Ubuntu. Y eso lo haremos con el siguiente comando:
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
Obviamente, si hemos añadido el repositorio desde GEDIT como hemos explicado en el paso anterior, este último comando no será necesario.
Ahora, antes de nada, tendremos que actualizar la lista de repositorios de Linux para registrar en nuestro sistema todos los programas y poder descargarlos e instalarlos con apt install.
Cómo actualizar la lista de repositorios de Linux
Si ya hemos añadido los repositorios que queremos a la lista con los pasos anteriores, o simplemente queremos actualizar nuestro software sin añadir nuevos repositorios, el proceso es mucho más rápido.
Lo único que nos queda por hacer es abrir un Terminal (Control + Alt + T) en nuestro Linux y ejecutar los dos siguientes comandos:
- sudo apt update (para actualizar las listas de software de los repositorios).
- sudo apt upgrade (para descargar los paquetes que haya disponibles).
Cuando finalice el proceso, todos los programas de nuestro Linux, que se hayan instalado a través de los repositorios, se habrán actualizado a su última versión.
Ya podemos instalar los programas que queramos desde los repositorios de nuestro Linux utilizando apt install (por ejemplo: sudo apt install google-chrome).
Cómo eliminar un repositorio de Linux
Puede que con el paso del tiempo ya no necesitemos algún repositorio de Linux en nuestra distro. Ya sea porque ha pasado a formar parte de los repositorios oficiales de la misma, o simplemente porque ya no usamos el programa.
También puede ocurrir que el repositorio haya dejado de funcionar y, por su culpa, estemos teniendo errores al actualizar las listas de software o actualizar nuestra distro Linux.
Para borrar el repositorio, lo que debemos hacer es abrir la lista de repositorios de software con el siguiente comando:
sudo gedit /etc/apt/sources.list
Se nos abrirá el editor de texto gedit con la lista de todos los repositorios que hemos añadido. Simplemente debemos localizar el repositorio que queremos eliminar y eliminarlo de la lista. También podemos comentarlo con almohadillas, como los comentarios, para que quede desactivado.
Ya está eliminado el repositorio. Ahora actualizando la lista con sudo apt update y los cambios quedarán reflejados ya en nuestra distro.
Eliminar PPA
En caso de que hayamos añadido el repositorio a través de una PPA, eliminarlo es una tarea bastante sencilla. Lo único que tendremos que hacer es ejecutar en la terminal el siguiente comando, añadiendo al final la URL de la PPA que queremos eliminar:
sudo add-apt-repository -r ppa:repo/repo
Si el repositorio llevaba asociada una clave, podemos eliminarla usando el comando «sudo apt-key del» seguido de la clave numérica entre comillas o de sus 8 últimos caracteres (sin comillas).
Actualizamos la lista de software con «sudo apt update» y listo.
Problemas al actualizar los repositorios de Linux
Aunque lo normal es que todo vaya bien, y en unos segundos tengamos las listas de software actualizadas, pueden ocurrir varios motivos por los que los repos no se actualizan correctamente. Cuando esto ocurra no debemos perder la calma, ya que con un par de simples comandos vamos a poder solucionar la mayoría de los problemas.
Error Sub-process /usr/bin/dpkg
Este mensaje de error suele aparecer cuando se ha quedado una instalación pendiente. El binario dpkg ha quedado bloqueado y, por lo tanto, no se pueden ejecutar otros comandos que dependan de él. En ese caso, lo que debemos hacer es intentar completar estas actualizaciones ejecutando en el terminal:
sudo dpkg –configure -a
Si después de esto aún no se ha solucionado el problema, entonces tendremos que eliminar unos archivos que pueden ser los que están dando problemas. Desde un terminal, entonces debemos ejecutar:
sudo rm /var/lib/dpkg/info/*.postrm && sudo rm /var/lib/dpkg/info/*.list
Entonces, eliminaremos la caché y comenzaremos con la actualización de los repos con:
sudo apt-get clean all && sudo apt-get update && sudo apt-get upgrade
Algo salió mal, ejecuta sudo apt-get -f install
Este mensaje de error también es uno de los más comunes que podemos encontrarlos. Como vemos, es muy descriptivo, y nos explica en su propio nombre cómo solucionarlo. Por ello, lo primero que tendremos que hacer es ejecutar dicho comando para solucionar el problema con el gestor de actualizaciones o con el centro de software que esté bloqueando los repositorios.
sudo apt-get -f install
Una vez ejecutado, entonces ya podremos actualizar los repositorios de Linux y las listas de software ejecutando en el terminal:
sudo apt-get update && sudo apt-get upgrade