Tutoriales

Instalar paquetes de repositorios externos en Ubuntu [Explained]

Tiene algunas ideas sobre cómo instalar paquetes en Ubuntu usando el comando apt. Estos paquetes provienen de los repositorios de Ubuntu.

¿Qué tal un repositorio externo o de terceros? No, no estoy hablando de PPA aquí.

Tarde o temprano encontrará instrucciones de instalación de al menos cuatro líneas. Instalas algo llamado ‘apt-transport-https’ y luego haces algo con gpg y la lista de fuentes. Luego instale el paquete.

No puedo recordar muy bien. Permítanme compartirles un ejemplo de cómo instalar la última versión de Yarn en Ubuntu:

sudo apt install apt-transport-https curl
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'
sudo apt update && sudo apt install yarn

A menudo se encontrará con un método de instalación de este tipo cuando instale herramientas de programación directamente de los desarrolladores.

Mucha gente simplemente sigue las instrucciones sin pensar dos veces en lo que está sucediendo aquí. No hay nada de malo en eso, pero conocer el proceso realmente mejorará su conocimiento del tema y también podría ayudarlo con la resolución de problemas.

Déjame explicarte la lógica detrás de estas líneas.

Comprender el proceso de instalación desde repositorios externos

Antes de continuar, le recomiendo encarecidamente que lea estos dos artículos para que las cosas le sean un poco más claras:

Como recordatorio rápido, aquí hay una representación visual de los repositorios y el administrador de paquetes en Linux.

Ilustración de repositorio y administrador de paquetes.

La idea aquí es que está agregando un nuevo repositorio externo a su sistema. Esto le permite descargar e instalar paquetes disponibles desde este nuevo repositorio. Si el repositorio proporciona una actualización para la versión del paquete, puede actualizar el paquete instalado junto con las actualizaciones del sistema (apt update && apt upgrade).

¿Entonces, cómo funciona? Repasemos las líneas una por una.

Parte 1: obtenga soporte HTTPS para apt

La primera línea es esta:

sudo apt install apt-transport-https curl

Curl es una herramienta para descargar archivos en la terminal de Linux. La parte principal aquí es la instalación. apt-transport-https y francamente ya no es necesario.

¿Confundido? Este paquete apt-transport-https permite que su sistema acceda a los repositorios a través del protocolo seguro HTTPS. Los repositorios de Ubuntu usan http, no https, de forma predeterminada.

Mira la captura de pantalla a continuación. Los https son los repositorios externos que agregué a mi sistema. Los repositorios de Ubuntu y PPA usan http.

apt actualizar http https

La versión anterior del administrador de paquetes apt no incluía compatibilidad con https. apt-transport-https-package agrega compatibilidad con apt https. Para agregar un repositorio que usa https, este paquete se instala primero.

¿No dije que ya no es necesario? Sí, ya que las versiones más recientes de apt (superiores a 1.5) admiten https y ya no es necesario instalar apt-transport-https.

Y, sin embargo, ve este paquete mencionado en las instrucciones. Esto se debe más a razones heredadas o a versiones de distribución realmente antiguas que pueden estar usando una versión anterior de apt.

Ahora puede que se pregunte por qué los repositorios de Ubuntu usan http en lugar de https cuando https es el protocolo seguro. ¿No es eso un riesgo de seguridad? El siguiente segmento responderá a esa pregunta.

Parte 2: agregue la clave GPG del repositorio remoto

Los repositorios de Linux tienen este mecanismo de seguridad integrado basado en claves GPG. Cada repositorio tiene su clave pública GPG agregada a las claves confiables de su sistema. Los paquetes de los repositorios se «firman» con esta clave GPG y, gracias a la clave pública almacenada, su sistema comprueba si el paquete se origina en el repositorio.

Si las claves no coinciden, su sistema arrojará un error en lugar de instalar o actualizar paquetes desde dicho repositorio.

Hasta ahora tan bueno. El siguiente paso es agregar la clave GPG pública del repositorio externo a su sistema Linux para que confíe en el paquete de ese repositorio.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

En el comando anterior, descargue la clave GPG de la URL dada usando curl. La opción sS se asegura de que no vea la salida inundada (modo silencioso) pero muestre el error (si lo hay). El último - le dice a apt-key que use stdin en lugar de un archivo (en este caso, la salida del comando curl).

La clave de descarga se agrega al sistema con apt-key add Mando.

Puede ver las claves GPG agregadas desde varios repositorios en su sistema usando el apt-key list Mando.

Lista apt key gpg ubuntu
Lista de claves GPG

Esta es una forma de agregar la clave GPG al sistema. Utilizará algunos otros comandos que se ven ligeramente diferentes pero hacen el mismo trabajo de agregar la clave pública del repositorio a su sistema.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

Notará una advertencia de que apt-key no está actualizado. Todavía puede usar el comando apt-key hasta Ubuntu 22.04, pero eventualmente se eliminará. No nos preocupemos por eso ahora mismo.

Parte 3: agregar el repositorio externo a su lista de fuentes

El siguiente comando agrega una nueva entrada a la lista de fuentes de su sistema. De esta manera, su sistema sabe que necesita buscar paquetes y actualizaciones en este repositorio.

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

Hay un archivo /etc/apt/sources.list que contiene los detalles de los repositorios de Ubuntu. Este archivo no debe tocarse. Todos los repositorios adicionales deben colocarse en sus propios archivos respectivos (con la extensión .list convención) en el directorio /etc/apt/sources.list.d.

Lista de fuentes ubuntu
El repositorio externo debe tener su propio archivo de lista de fuentes en el directorio /etc/apt/sources.list.d

Esto facilita la gestión de paquetes. Si elimina un repositorio del sistema, solo necesita eliminar el archivo fuente correspondiente. No tiene que meterse con el archivo principal sources.list.

Echemos un vistazo más de cerca al comando.

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

Con sh, solicita ejecutar el comando en un nuevo shell en lugar del subshell. -c Option indica al comando sh que lea los comandos del operando en lugar de la entrada estándar. Luego ejecuta el comando echo que básicamente agrega una línea deb https://dl.yarnpkg.com/debian/ estable principal en el archivo /etc/apt/sources.list.d/yarn.list (se crea el archivo)

Ahora hay numerosas formas de crear un archivo .list en el directorio especificado y agregarle la línea con los detalles del repositorio. También puedes usarlo así:

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Entiendes lo esencial, ¿no?

Parte 4: Instale la aplicación desde el repositorio recién agregado

Hasta ahora, ha agregado la clave GPG del repositorio y la URL del repositorio al sistema.

Pero su sistema aún no sabe qué paquete está disponible en este nuevo repositorio. Por este motivo, primero debe actualizar la caché de metadatos del paquete local con este comando:

sudo apt update

Su sistema tiene la información sobre los paquetes disponibles del repositorio recién agregado y ahora puede instalar el paquete:

sudo apt install yarn

Para ahorrar tiempo, puede ejecutar los dos comandos uno tras otro en una línea.

sudo apt update && sudo apt install yarn

Ese && asegura que el segundo comando solo se ejecute si el comando anterior se completó sin errores.

Y eso completa el proceso.

¿Te hizo más claro o te confundió aún más?

He explicado la lógica detrás de los pasos para usar repositorios externos en Ubuntu. Espero que ya comprenda mejor el tema, pero también es posible que demasiados detalles sean confusos.

Si aún tiene alguna pregunta o si tiene más preguntas, hágamelo saber. Si nota alguna inexactitud técnica, hágamelo saber en la sección de comentarios.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba