GNU/Linux >> Tutoriales Linux >  >> Linux

Administrador de paquetes APT en Linux explicado

Como administrador del sistema, saber cómo instalar , actualizar o eliminar paquetes de Linux es crucial para mantener sus hosts y servidores Linux.

Puede que tengas que actualizar sus paquetes actuales para obtener los últimos parches de seguridad para sus servidores.

Por otro lado, es posible que deba configurar un servidor web HTTP completo para implementar un nuevo sitio web desarrollado por su equipo de aplicaciones.

A veces, es posible que desee probar un nuevo software para ver si se ajusta a sus necesidades, solo para desinstalar los paquetes más adelante.

Como consecuencia, saber cómo administrar los paquetes de Linux es crucial .

En este tutorial, nos centraremos en la administración de paquetes de Linux utilizando el administrador de paquetes APT.

Primero, vamos a repasar un poco de historia sobre los orígenes del software de código abierto para comprender los fundamentos de los paquetes de Linux.

Más adelante, nos centraremos un poco más en APT (Herramienta de paquete avanzado ) y vamos a ver cómo puedes compilar tus propios programas para tener instalaciones personalizadas.

¿Listo?

Lo que aprenderás

Al leer este tutorial, aprenderá sobre los siguientes temas:

  • El GNU /Linux proyecto y los orígenes del software libre;
  • Cómo programar instalación está diseñado en Linux y en qué se diferencia de los hosts de Windows;
  • ¿Qué repositorios de software son y cuáles son los diferentes tipos de repositorios que puede encontrar;
  • caché APT guía completa:cómo actualizar su caché y cómo buscar programas en su sistema;
  • APT obtiene comandos detallados :cómo instalar y eliminar paquetes de Linux correctamente;

Ese es un programa largo, así que sin más preámbulos, vamos directamente a él.

Explicación de los orígenes de GNU/Linux

Antes de detallar cómo puede instalar y desinstalar paquetes en Linux, es muy importante tener algunos conceptos básicos sobre qué son GNU y Linux.

Cuando se habla de Linux, es bastante común referirse a Linux como un sistema operativo pero no es del todo cierto .

Cuando nos referimos a los sistemas operativos Linux, en realidad nos referimos a los sistemas operativos GNU/Linux.

¿Qué es GNU?

GNU (abreviatura de “GNU no Unix “) es un sistema operativo diseñado para proporcionar software gratuito que usted mismo puede adquirir, distribuir y modificar fácilmente.

Hoy en día, es bastante popular pensar en Unix (o al menos GNU) como un sistema operativo libre, pero no siempre ha sido así.

Por ejemplo, si tuviera que ejecutar el comando "uname ” en su sistema, con la opción “-o” (para el sistema operativo), verá que lo más probable es que esté ejecutando un sistema operativo GNU/Linux.

$ uname -o

Interesante !

En los primeros días de Unix, el sistema operativo Unix no era un software de código abierto gratuito:fue desarrollado por empresas como IBM, HP o AT&T para las necesidades comerciales.

Sin embargo, dado el auge del software con derechos de autor y las distribuciones con licencia, Richard Stallman, investigador del MIT, decidió desarrollar una alternativa a UNIX:GNU.

GNU fue diseñado para ser un sistema operativo de código abierto compatible con versiones anteriores de los sistemas operativos Unix.

En un sistema operativo GNU, los comandos (como "ls", "cat" o "gcc") son completamente de código abierto.

Además, GNU se define como “software libre”, pero ¿estamos hablando de dinero? ?

Explicación del software libre

Como explicamos antes, GNU se autoproclama como software libre. .

Pero el software “libre” no se refiere literalmente a dinero, se refiere a libertades fundamentales que son fundamentales para GNU :

  • Libertad para ejecutar programas como desee , para cualquier propósito que esté tratando de lograr;
  • Libertad para modificar el programa , precondicionando un acceso completo al código fuente del programa;
  • Libertad para redistribuir copias para ayudar a sus vecinos;
  • Compartir tus modificaciones con el mundo :de esta manera no está limitado a sus propios cambios, sino que puede ayudar a miles de desarrolladores de todo el mundo.

Esas libertades fundamentales están ligadas al concepto de copyleft .

Puede agregar reglas específicas a este conjunto de reglas fundamentales siempre que no interfieran con las reglas básicas en sí.

Por ejemplo, sería ilegal tomar código fuente abierto, modificarlo y venderlo sin proporcionar el código fuente a los usuarios finales.

Esta es una declaración importante porque significa que no está prohibido vender código per se, es ilegal impedir que los usuarios finales disfruten de los derechos fundamentales.

Como consecuencia, GNU no solo define esas reglas de libertad fundamental, sino que también garantiza que esos derechos se extiendan a todas las versiones posteriores del software.

En este contexto y para tratar el contenido protegido por derechos de autor, la licencia GPL (GNU General Public License) fue creado.

La licencia GPL ayuda a agregar las diferentes reglas inherentes dedicadas al software libre y a definir las infracciones de licencia. En esta página se pueden encontrar preguntas frecuentes completas sobre la GPL.

Acceso a paquetes GNU

Como probablemente ya entendiste, los paquetes GNU son paquetes diseñados para ser compartidos , modificado y correr donde quieras, para cualquier propósito.

En este contexto, se puede acceder a los paquetes de GNU directamente en el sitio web de GNU.

Si se dirige a la página de software del sitio web oficial de GNU, podrá ver la lista completa de paquetes de GNU disponibles para usted.

Como puede ver, esta es una lista bastante larga de paquetes.

Uno de los paquetes más populares es el core-utils, que proporciona los comandos de Linux más populares, como “ls “, “gato ” o “buscar “.

¡Y esos comandos se pueden modificar y ejecutar a voluntad!

Todos esos paquetes vienen cada vez que instalas un sistema operativo GNU/Linux, pero ¿y si quisieras instalar software de terceros?

Para eso, Linux está diseñado para comunicarse con lo que llamamos repositorios de software.

¿Qué son los repositorios de software de Linux?

Antes de describir los repositorios de software de Linux, es muy importante conocer algunos antecedentes sobre cómo se diseña el sistema de empaquetado de Linux.

Si vienes de un entorno Windows, estás acostumbrado a descargar archivos ejecutables (.exe) de Internet, abres un asistente de instalación y haces clic en “Siguiente” un par de veces para que se instale tu programa.

En Linux, este no es el caso.

En Linux, los paquetes son descargados e instalados desde repositorios en línea por un administrador de paquetes.

Administrador de paquetes APT en Linux

En las distribuciones basadas en Debian, los paquetes se descargan a través del administrador de paquetes APT.

Cuando nos referimos a paquetes, nos referimos esencialmente a archivos de almacenamiento que contienen varios archivos deb que utiliza la utilidad dpkg para instalar programas.

Entonces, ¿por qué necesitaríamos APT?

APT, que significa Administración avanzada de paquetes, es responsable de descargar, instalar, actualizar y eliminar paquetes de su sistema.

Pero, ¿por qué deberíamos necesitar un administrador de paquetes para eso?

¿No podríamos instalar los programas nosotros mismos?

Sería difícil porque los paquetes están unidos a través de dependencias de paquetes.

Concepto de dependencias de paquetes

Tomemos por ejemplo el Editor VIM en Linux.

Si está utilizando una distribución Debian, la página VIM para repositorios Debian está disponible aquí.

Aquí es donde podrá encontrar información sobre este paquete específico: qué funcionalidades proporciona, quién lo creó pero, lo que es más importante, de qué paquetes depende.

En Linux, la mayoría de los paquetes no vienen como paquetes "puros":dependen de una amplia variedad de paquetes diferentes para proporcionar funciones de terceros al programa real.

Como puede ver al desplazarse por la página, el paquete VIM depende de muchos otros paquetes.

Como puede ver aquí, las dependencias se dividen en cuatro categorías diferentes:

  • depende :como su nombre indica, esta dependencia es necesaria para que el programa se ejecute. Sin él, el programa no puede iniciarse en absoluto;
  • recomienda :sin esta dependencia, el programa podría ejecutarse pero no proporcionaría todas las funciones para las que está diseñada esta herramienta;
  • sugiere :sin esta dependencia, el programa podría ejecutarse y brindar funciones básicas, pero no sería la versión final de la herramienta;
  • mejora :esta dependencia puede mejorar la herramienta real al mejorar el rendimiento o la visualización, pero no es necesaria en absoluto.

Ahora sabe por qué usamos la herramienta APT:las dependencias de los paquetes se resuelven en el momento de la instalación.

Ahora que sabe más sobre los paquetes, echemos un vistazo a qué son los repositorios de software .

Arquitectura de distribución de software de Linux

En Linux, el software se distribuye a través de repositorios de software.

Los repositorios de software se utilizan para agregar software gratuito proporcionado por la comunidad.

Los repositorios pueden estar vinculados a una distribución específica.

Ubuntu, Debian, CentOS o RHEL tienen sus propios repositorios que se actualizan diariamente.

Como consecuencia, cuando desea instalar un nuevo programa, está consultando esos repositorios base para recuperar paquetes de ellos.

Si quisiera instalar paquetes que no están ubicados en repositorios basados ​​en distribución, agregaría sus propios repositorios confiables a su sistema para instalar nuevos paquetes.

Esencialmente, esta es la razón por la que se dice que Linux es más seguro que Windows cuando se trata de instalar nuevos programas.

A menos que esté instalando paquetes dudosos, la mayor parte del tiempo se comunica con repositorios confiables donde cientos de desarrolladores diferentes revisan el código que está ejecutando en su máquina.

No evita la propagación de virus o malware, pero es poco probable porque varios revisores independientes han inspeccionado el código del paquete.

Tenga en cuenta que los repositorios se dividen en diferentes categorías y es posible que deba tomar el repositorio correcto para garantizar que está ejecutando versiones seguras.

Dichas versiones incluyen "estable ” repositorios, “prueba ” repositorios y “inestable repositorios”.

Nota :en otras distribuciones, esos repositorios pueden tener un nombre diferente (Ubuntu tiene multiverso, universo, principal, etc.)

De manera predeterminada, lo más probable es que su distribución esté vinculada al repositorio estable (también llamado "principal") a través del archivo de configuración source.list.

$ cat /etc/apt/sources.list

Ahora que sabe más sobre los repositorios de software y cómo interactúa su administrador de paquetes con él, veamos cuál es la memoria caché de su administrador de paquetes.

Explicación de la memoria caché de APT

Como discutimos antes, el administrador de paquetes APT es responsable de descargar paquetes de Internet (o repositorios de paquetes locales) para poder instalarlos.

Sin embargo, las operaciones realizadas por el administrador de paquetes APT no se realizan en línea todo el tiempo.

APT administra una base de datos interna llamada caché.

La memoria caché APT se utiliza para proporcionar información sin conexión sobre los paquetes actuales instalados en su sistema. Básicamente, garantiza que puede acceder a la información del paquete sin tener que estar conectado a Internet.

Buscando paquetes en el caché

Por ejemplo, puede buscar todos los paquetes relacionados con Python que pueden estar almacenados en su caché APT.

Para eso, debe ejecutar el comando "apt-cache" con "buscar ” opción.

$ apt-cache search <search string>

$ apt-cache search python

Sugerencia:puede canalizar su búsqueda de caché con "menos" para ver todos los resultados proporcionados.

búsqueda de apt-cache python | menos

Además de buscar paquetes específicos, la memoria caché APT también puede mostrar detalles completos sobre un paquete.

Mostrando información del paquete

Para mostrar la información del paquete, debe ejecutar el comando "apt-cache" con el "mostrar ” opción.

$ apt-cache show <package_name>

Por ejemplo, para tener más información sobre el paquete gcc (que es un compilador GNU), escribiría

$ apt-cache show gcc

Entonces, si no necesitamos una conexión a Internet para mostrar algunos detalles, significa que están almacenados en algún lugar de nuestra instancia.

Digamos, por ejemplo, que quiero buscar la página de documentación de caché para el comando nano.

De manera predeterminada, la información del paquete se almacena en “/var/lib/apt/lists

$ ls /var/lib/apt/lists

En este directorio, tiene acceso a un montón de archivos diferentes que almacenan información sobre los paquetes almacenados en su sistema.

Para probarlo, busquemos el archivo que proporciona información para el comando nano.

$ sudo grep -r -A 3 -B 3 -E "Package: nano$" . | less

Como puede ver, muchos archivos contienen una referencia al paquete nano, pero el que me interesa definitivamente está contenido en el archivo "main amd64" (como recordatorio, "main ” significa estable y “amd64 ” a la arquitectura de mi procesador )

Si tiene alguna duda sobre la arquitectura de su CPU, ejecute el comando "lscpu".

$ lscpu

Actualización de la memoria caché APT

Como probablemente ya entendiste, el caché de APT funciona sin conexión.

Como consecuencia, la memoria caché APT debe actualizarse periódicamente para asegurarse de que:

  • Está apuntando a los repositorios correctos;
  • Está recibiendo las actualizaciones más recientes para el software instalado en su computadora .

Para obtener actualizaciones para su caché, debe ejecutar el comando "apt-get update".

$ sudo apt-get update

Nota:debe ser Sudo para actualizar la caché de su sistema.

Como puede ver, el comando ejecuta un par de llamadas GET a repositorios distantes para obtener nueva información.

Cuando actualice sus repositorios, es importante tener en cuenta que no se actualizó ningún software en su computadora.

Ejecutando la “actualización apt-get El comando ” solo actualiza el caché para tener la información más reciente sobre el software, no actualiza directamente sus programas.

Para actualizar sus programas, debe ejecutar el comando “upgrade ” comando.

Actualizar (mejorar) sus paquetes locales

Para actualizar sus programas locales, debe ejecutar "apt-get" con "actualizar ” opción.

$ sudo apt-get upgrade

En algún momento durante el comando, se le preguntará si desea instalar las actualizaciones.

Presiona "Y ” y presione Entrar.

Al confirmar, sus programas se actualizarán a su última versión estable.

¡Lindo!

Ha actualizado con éxito sus paquetes usando el comando de actualización.

Actualizar su caché y actualizar sus paquetes actuales es muy bueno, pero ¿qué sucede si desea instalar nuevos paquetes en su sistema?

En la siguiente sección, verá cómo puede instalar nuevos programas en su sistema usando APT.

Instalación de nuevos paquetes con APT

Al instalar nuevos paquetes con APT, básicamente tiene dos opciones:

  • El paquete ya se encuentra en uno de los repositorios a los que está vinculado;
  • El paquete está en un repositorio distante y debe agregarlo.

Para ver si un paquete ya está ubicado en su caché APT, debe buscar en su caché.

En este ejemplo, vamos a fingir que queremos instalar el paquete "gcc".

Primero, veamos si GCC ya está ubicado en nuestro caché APT.

$ apt-cache search --names-only ^gcc$

Como puede ver, el paquete GCC está disponible directamente con mis repositorios locales predeterminados.

Instalando software encontrado en el caché

Cuando el paquete está disponible directamente en los repositorios predeterminados, puede instalarlo ejecutando el comando "apt-get" con "instalar ” opción.

Nota:necesitará privilegios de sudo para instalar nuevos paquetes en su sistema.

$ sudo apt-get install gcc

También se le puede preguntar si acepta instalar este paquete en su sistema.

Presione "Y" cada vez que se le solicite esta pregunta.

Poco después, su programa debería estar instalado y utilizable.

Para verificar que el comando se instaló correctamente, puede ejecutar el comando "whereis".

$ whereis gcc

Impresionante, ¡has instalado correctamente el compilador GCC en tu sistema!

Instalación de software no disponible en el caché

En algunos casos, es posible que desee instalar software que no esté directamente almacenado en su caché APT.

Para esta sección, instalaremos Grafana, un panel de control de código abierto que no está disponible directamente en los paquetes predeterminados.

Nota:este no es un tutorial dedicado a Grafana, esta parte solo cubrirá los comandos relacionados con APT.

Primero, debemos asegurarnos de que el paquete no esté ya contenido en nuestra caché APT.

$ apt-cache search --names-only ^grafana$
<empty>

En este caso, no se instalan paquetes predeterminados para Grafana, debemos agregarlo nosotros mismos.

Agregar repositorios APT personalizados

Para agregar repositorios APT personalizados, debe comprender la estructura del directorio de fuentes APT.

De forma predeterminada, los repositorios se almacenan en la carpeta "/etc/apt".

$ ls -l /etc/apt

En este directorio, tiene varias entradas:

  • apt.conf.d :las carpetas de configuración de APT que contienen archivos de configuración para configurar proxies, por ejemplo;
  • auth.conf.d :se puede usar para almacenar detalles de autenticación relacionados con proxies;
  • preferencias.d :se puede usar para establecer prioridades en repositorios o paquetes específicos;
  • fuentes. lista :contiene el conjunto predeterminado de repositorios para su distribución;
  • fuentes.lista.d :un directorio que puede contener repositorios APT personalizados;
  • de confianza.gpg.d :un conjunto de claves GPG en las que confía para certificar la autenticidad de la descarga.

El "sources.list" ya está lleno de repositorios predeterminados, por lo que es posible que no deseemos modificar este archivo.

En su lugar, vamos a agregar un repositorio personalizado al directorio sources.list.d.

$ sudo touch /etc/apt/sources.list.d/custom.list

En este archivo recién creado, agregue una entrada para el repositorio personalizado que desea instalar.

$ sudo nano /etc/apt/sources.list.d/custom.list

deb https://packages.grafana.com/oss/deb stable main

Para instalar paquetes de forma segura, es posible que deba importar claves GPG.

$ sudo wget -q -O https://packages.grafana.com/gpg.key | sudo apt-key add -
OK

Nota :es posible que no tenga que agregar una clave GPG para cada paquete, pero garantiza que el paquete se instale de forma segura.

Ahora que su repositorio se agregó correctamente, actualice su caché APT para que se apliquen los cambios.

$ sudo apt-get update

Ahora, si busca su paquete, debería poder encontrarlo.

$ sudo apt-cache show grafana

Como consecuencia, ahora está listo para instalar su paquete.

Para instalar su paquete, simplemente ejecute “apt-get ” con el comando “instalar ” opción.

$ sudo apt-get install grafana

Impresionante !

Ahora su paquete se instaló con éxito.

Como puede ver, la instalación de software personalizado es bastante diferente a la instalación de software disponible en el caché:debe agregar repositorios personalizados y eventualmente agregar claves GPG.

Ahora que sabe cómo instalar paquetes, veamos cómo puede desinstalarlos.

Desinstalar paquetes con APT

Al desinstalar paquetes con el administrador de paquetes APT, básicamente tiene dos opciones:eliminar o purgar .

Eliminar paquetes usando apt-get remove

La primera forma de desinstalar el paquete es usar apt-get remove comando.

$ sudo apt-get remove <package>

Usando el paquete grafana que instalamos anteriormente, esto daría

$ sudo apt-get remove grafana

Entonces, ¿por qué necesitaríamos una función de purga?

Al usar apt-get remove , los paquetes se eliminan pero los archivos asociados al paquete se dejan intactos.

Para verlo, intente listar los archivos asociados a un paquete en su sistema usando el comando dpkg.

$ dpkg -L <package>

Como puede ver, los archivos de configuración todavía están allí, por eso necesita usar la purga comando.

Purgar paquetes usando apt-get purge

Para usar el comando de purga, simplemente ejecute “apt-get ” con la “purga ” opción.

$ sudo apt-get purge <package>

Ahora, si intenta ver los archivos asociados con su paquete, no podrá encontrar ninguno de ellos.

$ dpkg -L <package>
<empty>

Eliminar dependencias con autoremove

Como probablemente entendiste, el objetivo de usar APT es que recupera las dependencias de los paquetes por ti y las instala correctamente.

Como consecuencia, cada vez que instala nuevos paquetes, corre el riesgo de dejar dependencias pendientes en su sistema.

Para eliminar dependencias colgantes (es decir, dependencias que ya no se usan), debe usar la opción de eliminación automática.

Puede hacerlo mientras desinstala un paquete

$ sudo apt-get autoremove <package>

O puede hacerlo después ejecutando autoremove opción sin ningún argumento.

$ sudo apt-get autoremove

Conclusión

En este largo tutorial, aprendiste cómo puedes instalar y desinstalar paquetes usando el administrador de paquetes APT.

También aprendiste más sobre los orígenes del software de código abierto , de dónde viene y cómo GNU/Linux El sistema operativo surgió de los sistemas operativos Unix estándar.

Si está interesado en la administración del sistema Linux , tenemos una sección completa dedicada a él en el sitio web, así que asegúrese de consultarlo.


Linux
  1. Gestión de paquetes de Linux con apt

  2. ¿Cuál es tu administrador de paquetes de Linux favorito?

  3. Cómo instalar y usar Snap Package Manager en Alma Linux 8

  4. Cómo instalar y usar Yarn Package Manager en Linux

  5. Instale Java en Ubuntu 20.04 con el administrador de paquetes apt

15 ejemplos de comandos apt en Ubuntu / Debian Linux

Aptitude - Herramienta de gestión de paquetes Debian GNU/Linux

Instale el Administrador de paquetes Synaptic en Linux

Cómo usar el administrador de paquetes Yum en Rocky Linux 8

Cómo instalar Snap Package Manager en Rocky Linux 8

Cómo instalar Snap Package Manager en distribuciones de Linux