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 ( Administrador de sistemas certificado por la Fundación Linux ), una oportunidad brillante para que los administradores de sistemas de todo el mundo demuestren, a través de un examen basado en el rendimiento, 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 eficaz del sistema, resolución de problemas y monitoreo de primer nivel, incluida la escalada final de problemas, cuando sea necesario, a los equipos de soporte de ingeniería.

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

Este artículo es una 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 solo 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 o conjuntos de programas prediseñados 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.

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 gestió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 instalan todas sus dependencias.

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

Porque las diferentes familias de distribución usan diferentes sistemas de empaquetado (Debian: * .deb /CentOS: * .rpm /openSUSE: * .rpm construido 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 distribución cubiertas por la certificación LFCS.

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 asegurar que se realicen las tareas de resolución de dependencias y búsqueda de metadatos - "datos sobre los datos").

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 de 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, de 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 de comandos 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, también manejar la resolución de dependencias automáticamente) de una manera rápida y fácil . 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 las distribuciones basadas en Fedora, como RHEL y CentOS, lo utilizan con más frecuencia.

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 los 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:

La desventaja de este método de instalación es que no se proporciona una resolución de dependencia. Lo más probable es que elija 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 se pueda descargar e instalar a través de 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 que fue creado para openSUSE, o viceversa!

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

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

Cuando tenga en sus manos 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
# 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.

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

# aptitude update && aptitude search package_name 

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

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

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

# yum whatprovides “*/sysdig”

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

# zypper refresh && zypper search package_name		[On openSUSE]

Al instalar 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 una actualización o una actualización (de acuerdo con el administrador de paquetes que se esté utilizando) 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]

La opción eliminar desinstalará el paquete pero dejará intactos los archivos de configuración, mientras que purgar borrará todo rastro del programa de su sistema.
# aptitude remove/purge package_name
# 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!

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

# aptitude show birthday 
# yum info birthday
# zypper info birthday

Resumen

La administración de paquetes es algo que simplemente no puede esconder como administrador del sistema. Debe estar preparado para utilizar las herramientas descritas en este artículo en cualquier momento. Espero que lo encuentre útil en su preparación para el examen LFCS y para sus tareas diarias. No dude en dejar sus comentarios o preguntas a continuación. Estaremos encantados de responderle lo antes posible.