Introducción a la gestión de paquetes en Linux

Introducción a la gestión de paquetes en Linux
Todos los sistemas operativos dependen de un conjunto de aplicaciones de software para llevar a cabo tareas previstas para los usuarios. En los primeros días, las aplicaciones se probaron contra errores antes del lanzamiento para proporcionar una mejor experiencia de usuario. Ahora la aplicación de software se lanza con la intención de aplicar correcciones de errores en nuevas versiones. Además, cada aplicación tiene su actualizador, o el usuario ha tenido que descubrir cómo obtener la versión de software actualizada.

Linux adoptó la práctica oportuna de gestión de software mediante la creación de formatos de embalaje, paquetes de software y herramientas de instalación únicas. Este artículo analiza cómo el proceso de instalación del paquete de software actualizado desde la instalación del paquete de tarball hasta la gestión de paquetes de DEB y RPM.

Tarball

La adición de software de sistemas Linux anteriores requirió que el usuario descargue el código fuente, lo compile en archivos binarios y lo agregue al sistema. A veces, el software fue puesto a disposición por algunos usuarios en una forma compilada conocida como Tarball. Un tarball contiene múltiples archivos que incluyen, ejecutables, archivos de configuración, documentación y bibliotecas. De modo que todos los archivos se compriman en un solo archivo para un fácil almacenamiento y distribución.

Después de la instalación de software, los archivos se extienden en todo el sistema en directorios relevantes. Sin embargo, el método para crear tarball puede parecer fácil, pero el proceso de instalación dificulta algunas tareas, por ejemplo:

Requiere que el usuario rastree de forma independiente/manualmente las dependencias para el software de instalación de modo que el software dependiente tenga algunas dependencias.

Dado que la instalación del paquete de tarball extiende los archivos, no será fácil localizar los archivos de documentación y configuración del paquete incluso si el usuario conoce los comandos.

Es difícil localizar archivos para desinstalar software.

La ausencia de metadatos en tarballs deja a los usuarios confundidos sobre los detalles de la versión después de la instalación. Eso hace que sea difícil rastrear errores y obtener nuevas versiones.

Para superar estos problemas, el envasado de software en las distribuciones de Linux se evolucionó en dos formatos de empaque conocidos como DEB y Embalaje de RPM.

Embalaje de Deb

Las distribuciones de Linux con sede en Debian y Debian utilizan empaque de software Deb-Base. El .Los archivos DEB incluyen todos los archivos relevantes con metadatos en un .formato de archivo AR. Los metadatos contienen todos los detalles del software relevantes que involucran versión, descripción, dependencias, licencias, etc. Las distribuciones de Debian ofrecen múltiples interfaces gráficas y herramientas basadas en terminal para administrar .archivos deb. Algunos de ellos incluyen:

  • apto: Herramienta de embalaje avanzada de Ubuntu que proporciona un comando apt-get para buscar y administrar la instalación del paquete.
  • aptitud: El comando es una herramienta de administración de paquetes que proporciona una interfaz basada en texto para ejecutarse dentro del terminal. Realiza la instalación del paquete, la eliminación y la actualización mediante el uso de teclas de flecha y resaltando la opción seleccionada.
  • Centro de software de Ubuntu: Es una interfaz de usuario gráfica intuitiva para los usuarios principiantes de Linux buscando e instalación de paquetes.

A pesar de que Ubuntu Software Center es intuitivo, el sistema avanzado de gestión de envases supera a todos los demás PM para embalaje de DEB.

Embalaje de rpm

Las rpm (.RPM) El formato de embalaje es la preferencia de Suse, Fedora y Red Hat, y las distribuciones de Linux con sede en Rhel. El paquete RPM es la amalgama de los archivos para proporcionar un visor de fotos, un procesador de textos u otro software a los usuarios de distribución de RHEL. También contiene archivos de configuración, metadatos y otros documentos requeridos para crear el software.

El RPM Package Manager combina binarios y todos los archivos requeridos disponibles a través de proveedores de software Upstream en un paquete RPM. Antes de incluir paquetes en el repositorio, están firmados para que los usuarios puedan verificar su validez. Ahora el usuario puede acceder a estos paquetes para la instalación desde repositorios colocados dentro de CD o directorios a través de servidores NFS o FTP.

El nombre del paquete RPM le dice mucho sobre el software. Por ejemplo, escriba el siguiente comando para encontrar los detalles del paquete RPM de Firefox actualmente instalado:

[Fedora@Fedora] $ rpm -q Firefox
Firefox-87.0-12.FC34.x86_64
  • 87.0: representa un número de lanzamiento asignado por el proyecto Mozilla
  • 12: representa el número de veces que Red Hat reconstruye el paquete al mismo número de liberación.
  • FC34.X86_64: Representa que el paquete se construye y compila para la arquitectura Fedora Linux y X86 de 64 bits de 64 bits.

Para encontrar más detalles del paquete, consulte la base de datos local RPM utilizando el comando rpm con la opción -qi:

[Fedora@Fedora] $ rpm -qi Firefox
Nombre: Firefox
Versión: 87.0
Lanzamiento: 12.FC34
Arquitectura: x86_64
Fecha de instalación: viernes 23 de abril de 2021 06:58:19 AM EDT
Grupo: no especificado
Tamaño: 261285879
Licencia: MPLV1.1 o GPLV2+ o LGPLV2+
Firma: RSA/SHA256, martes 13 de abril 2021 04:59:11 AM EDT, ID clave 1161AE6945719A39
Fuente RPM: Firefox-87.0-12.FC34.SRC.rpm
Fecha de construcción: lunes 12 de abril 2021 04:56:26 am edt
Host de construcción: BuildHW-X86-10.IAD2.federaproject.organizar
Packager: proyecto Fedora
Vendedor: Proyecto Fedora
URL: https: // www.Mozilla.org/Firefox/
URL de error: https: // bugz.federaproject.org/Firefox
Resumen: navegador web de Mozilla Firefox
Descripción :
Mozilla Firefox es un navegador web de código abierto diseñado para estándares
cumplimiento, rendimiento y portabilidad.

La salida anterior ahora representa el paquete construido y las fechas de instalación, el tamaño, la licencia del grupo de paquetes de Firefox y muchos otros detalles. A pesar de que RPM fue el primer comando de herramienta de embalaje de RPM para la actualización de instalación, consulta, eliminación de paquetes, etc., Tiene algunos inconvenientes fundamentales.

Dependencia del infierno: La instalación del paquete RPM falla en ausencia de dependencias mientras se cuenta sobre los componentes requeridos. Además, el paquete dependiente en sí tiene algunas dependencias necesarias para realizar el trabajo.

Ubicación de RPMS: El administrador de paquetes RPM espera recibir la ubicación del paquete antes de la instalación. Si el paquete está disponible en la carpeta actual, requiere una entrada de Firefox-87.0-12.FC34.x86_64.RPM, si está en el servidor, requiere http: // ejemplo.com/Firefox-87.0-12.FC34.x86_64.rpm.

Mientras que en ese momento, el embalaje de software basado en Deb podría resolver automáticamente el problema de las dependencias. Sin embargo, después de la creciente popularidad de los paquetes de RPM, los problemas se han resuelto con la instalación YUM.

Proyecto YUM

Se introdujo la instalación de YellowDog Updater Modified (YUM) para administrar las dependencias de los paquetes de RPM considerando cada paquete RPM como parte de un gran repositorio de software. Tal que el problema de tratar con las dependencias es para la distribución de Linux o el software de terceros.

Resuelve los problemas con el concepto que los repositorios pueden construirse entre sí. Por ejemplo, si un usuario instala algún paquete desde el rpmfusion.org de repositorio, que requiere un comando/herramienta del repositorio principal de Fedora, también tiene acceso a eso. Por lo tanto, se descargará e instalará mientras tanto.

Conclusión

Los artículos proporcionan un breve historial de cómo ha evolucionado el sistema de gestión de envases de Linux. Nosotros discutimos .deb y .Sistemas de envasado de software basados ​​en RPM para distribuciones de Linux basadas en Debian y Rhel, sus herramientas más utilizadas. También discutimos la evolución de los sistemas de gestión de paquetes a partir de los problemas enfrentados durante las primeras etapas de desarrollo.