Búsqueda de sitios web

Gestión de paquetes de Linux con Yum, RPM, Apt, Dpkg, Aptitude y Zypper - Parte 9


En agosto pasado, la Fundación Linux anunció la certificación LFCS (Linux Foundation Certified Sysadmin), una brillante oportunidad para que los administradores de sistemas de todo el mundo demuestren, a través de un examen basado en el desempeño, que son capaces de tener éxito en el soporte operativo general para sistemas Linux. Un administrador de sistemas certificado por la Fundación Linux tiene la experiencia para garantizar un soporte efectivo del sistema, resolución de problemas y monitoreo de primer nivel, incluido finalmente el escalamiento del problema, cuando sea necesario, a los equipos de soporte de ingeniería.

Mire el siguiente video que explica sobre el Programa de Certificación de Linux Foundation.

Este artículo es la Parte 9 de una serie larga de 10 tutoriales. Hoy, en este artículo, lo guiaremos sobre la administración de paquetes de Linux, que son necesarios para el examen de certificación LFCS.

Gestión de paquetes

En pocas palabras, la administración de paquetes es un método para instalar y mantener (que incluye actualizar y probablemente también eliminar) software en el sistema.

En los primeros días de Linux, los programas sólo se distribuían como código fuente, junto con las páginas de manual requeridas, los archivos de configuración necesarios y más. Hoy en día, la mayoría de los distribuidores de Linux utilizan de forma predeterminada programas prediseñados o conjuntos de programas llamados paquetes, que se presentan a los usuarios listos para su instalación en esa distribución. Sin embargo, una de las maravillas de Linux sigue siendo la posibilidad de obtener el código fuente de un programa para estudiarlo, mejorarlo y compilarlo.

Cómo funcionan los sistemas de gestión de paquetes

Si un determinado paquete requiere un determinado recurso, como una biblioteca compartida u otro paquete, se dice que tiene una dependencia. Todos los sistemas de administración de paquetes modernos proporcionan algún método de resolución de dependencias para garantizar que cuando se instala un paquete, también se instalen todas sus dependencias.

Sistemas de embalaje

Casi todo el software instalado en un sistema Linux moderno se encontrará en Internet. Puede ser proporcionado por el proveedor de la distribución a través de repositorios centrales (que pueden contener varios miles de paquetes, cada uno de los cuales ha sido creado, probado y mantenido específicamente para la distribución) o estar disponible en código fuente que se puede descargar e instalar manualmente. .

Debido a que diferentes familias de distribución utilizan diferentes sistemas de empaquetado (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm creado especialmente para openSUSE), un paquete destinado a una distribución no será compatible con otra distribución. Sin embargo, es probable que la mayoría de las distribuciones pertenezcan a una de las tres familias de distribuciones cubiertas por la certificación LFCS.

Herramientas de paquete de alto y bajo nivel.

Para realizar la tarea de administración de paquetes de manera efectiva, debe tener en cuenta que tendrá dos tipos de utilidades disponibles: herramientas de bajo nivel (que manejan en el backend la instalación, actualización y eliminación de archivos de paquetes), y herramientas de alto nivel (que se encargan de garantizar que se realicen las tareas de resolución de dependencias y búsqueda de metadatos -”datos sobre los datos”-).

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

Veamos la descripción de las herramientas de bajo y alto nivel.

dpkg es un administrador de paquetes de bajo nivel para sistemas basados en Debian. Puede instalar, eliminar, proporcionar información y compilar paquetes *.deb, pero no puede descargar e instalar automáticamente sus dependencias correspondientes.

Leer más: 15 ejemplos de comandos dpkg

apt-get es un administrador de paquetes de alto nivel para Debian y derivados, y proporciona una forma sencilla de recuperar e instalar paquetes, incluida la resolución de dependencias, desde múltiples fuentes utilizando la línea de comandos. A diferencia de dpkg, apt-get no funciona directamente con archivos *.deb, sino con el nombre propio del paquete.

Leer más: 25 ejemplos del comando apt-get

aptitude es otro administrador de paquetes de alto nivel para sistemas basados en Debian y puede usarse para realizar tareas de administración (instalar, actualizar y eliminar paquetes, y también manejar la resolución de dependencias automáticamente) de una manera rápida y sencilla. . Proporciona la misma funcionalidad que apt-get y otras adicionales, como ofrecer acceso a varias versiones de un paquete.

rpm es el sistema de administración de paquetes utilizado por las distribuciones compatibles con Linux Standard Base (LSB) para el manejo de paquetes de bajo nivel. Al igual que dpkg, puede consultar, instalar, verificar, actualizar y eliminar paquetes, y es utilizado con mayor frecuencia por distribuciones basadas en Fedora, como RHEL y CentOS.

Leer más: Ejemplos de comandos de 20 rpm

yum agrega la funcionalidad de actualizaciones automáticas y administración de paquetes con administración de dependencias a sistemas basados en RPM. Como herramienta de alto nivel, como apt-get o aptitude, yum funciona con repositorios.

Leer más: 20 ejemplos de comandos yum

Uso común de herramientas de bajo nivel

Las tareas más frecuentes que realizarás con herramientas de bajo nivel son las siguientes:

1. Instalar un paquete desde un archivo compilado (*.deb o *.rpm)

La desventaja de este método de instalación es que no se proporciona ninguna resolución de dependencia. Lo más probable es que opte por instalar un paquete desde un archivo compilado cuando dicho paquete no esté disponible en los repositorios de la distribución y, por lo tanto, no pueda descargarse e instalarse mediante una herramienta de alto nivel. Dado que las herramientas de bajo nivel no realizan la resolución de dependencias, saldrán con un error si intentamos instalar un paquete con dependencias no satisfechas.

dpkg -i file.deb 		[Debian and derivative]
rpm -i file.rpm 		[CentOS / openSUSE]

Nota: ¡No intente instalar en CentOS un archivo *.rpm creado para openSUSE, o viceversa!

2. Actualizar un paquete desde un archivo compilado

Nuevamente, solo actualizará manualmente un paquete instalado cuando no esté disponible en los repositorios centrales.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. Listado de paquetes instalados

Cuando tenga en sus manos por primera vez un sistema que ya funciona, es probable que desee saber qué paquetes están instalados.

dpkg -l 		[Debian and derivative]
rpm -qa 		[CentOS / openSUSE]

Si desea saber si un paquete específico está instalado, puede canalizar la salida de los comandos anteriores a grep, como se explica en manipular archivos en Linux – Parte 1 de esta serie. Supongamos que necesitamos verificar si el paquete mysql-common está instalado en un sistema Ubuntu.

dpkg -l | grep mysql-common

Otra forma de determinar si un paquete está instalado.

dpkg --status package_name 		[Debian and derivative]
rpm -q package_name 			[CentOS / openSUSE]

Por ejemplo, averigüemos si el paquete sysdig está instalado en nuestro sistema.

rpm -qa | grep sysdig

4. Averiguar qué paquete instaló un archivo
dpkg --search file_name
rpm -qf file_name

Por ejemplo, ¿qué paquete instaló pw_dict.hwm?

rpm -qf /usr/share/cracklib/pw_dict.hwm

Uso común de herramientas de alto nivel

Las tareas más frecuentes que realizarás con herramientas de alto nivel son las siguientes.

1. Buscando un paquete

aptitude update actualizará la lista de paquetes disponibles y aptitude search realizará la búsqueda real de nombre_paquete.

aptitude update && aptitude search package_name 

En la opción Buscar todo, yum buscará nombre_paquete no solo en los nombres de los paquetes, sino también en las descripciones de los paquetes.

yum search package_name
yum search all package_name
yum whatprovides “*/package_name”

Supongamos que necesitamos un archivo cuyo nombre sea sysdig. Para saber que paquete tendremos que instalar, ejecutemos.

yum whatprovides “*/sysdig”

whatprovides le dice a yum que busque en el paquete y proporcionará un archivo que coincida con la expresión regular anterior.

zypper refresh && zypper search package_name		[On openSUSE]
2. Instalar un paquete desde un repositorio

Mientras instala un paquete, es posible que se le solicite que confirme la instalación después de que el administrador de paquetes haya resuelto todas las dependencias. Tenga en cuenta que ejecutar la actualización o actualización (según el administrador de paquetes que se utilice) no es estrictamente necesario, pero mantener actualizados los paquetes instalados es una buena práctica de administrador de sistemas por razones de seguridad y dependencia.

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Quitar un paquete

La opción eliminar desinstalará el paquete pero dejará los archivos de configuración intactos, mientras que purgar borrará todo rastro del programa de su sistema.
# aptitude eliminar/purgar nombre_paquete
# yum borrar nombre_paquete

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

zypper remove -package_name 

La mayoría (si no todos) los administradores de paquetes le preguntarán, de forma predeterminada, si está seguro de continuar con la desinstalación antes de realizarla. ¡Así que lea atentamente los mensajes en pantalla para evitar problemas innecesarios!

4. Mostrar información sobre un paquete

El siguiente comando mostrará información sobre el paquete cumpleaños.

aptitude show birthday 
yum info birthday
zypper info birthday

Resumen

La gestión de paquetes es algo que no puedes esconder debajo de la alfombra como administrador del sistema. Debe estar preparado para utilizar las herramientas descritas en este artículo en cualquier momento. Espero que te resulte útil en tu preparación para el examen LFCS y para tus tareas diarias. No dude en dejar sus comentarios o preguntas a continuación. Estaremos más que felices de responderle lo antes posible.