What are Package Managers on Linux?

What are Package Managers on Linux?

Hoy en día hablar de Manejadores de Paquetes se ha vuelto un tema ya conocido gracias a los nuevos lenguajes de programación y su rápida evolución. Lenguajes como Node.js, PHP, Python entre otros han dinamizado el concepto proporcionando soluciones para manejar librerías y dependencias que permiten aclarar el concepto.

Ahora, si hablamos de Linux, es importante entender que el concepto en su fundamento es el mismo, a diferencia de que el término inició en los Sistemas Operativos (OS), por lo cual es de entenderse que al día de hoy estas herramientas son bastante potentes y simplifican casi en su totalidad los procesos de instalación, desinstalación y configuración de aplicaciones en los Sistemas Operativos Unix-Like o Linux.

Conceptualmente un manejador de paquetes es una colección de herramientas de softwares que automatizan el proceso de instalación, actualización, configuración y eliminación de programas de computación para un Sistema Operativo de forma coherente.

El Manejador de Paquetes se encarga de lidiar con los paquetes, distribuciones del software y los archivos de datos. Estos paquetes contienen metadatos, que describen el funcionamiento y propósito, versión, distribuidor, código hash y una lista de dependencias necesarias para que el software que vallamos a instalar funcione de forma correcta.

Ok, ya los entiendo, ahora ¿Cómo funcionan?

Antes de proceder con la instalación, el manejador de paquetes se encarga de guardar de forma local una base de datos de todos los metadatos de cada repositorio configurado en el mismo. Esto permite que el sistema mantenga una relación de las versiones y dependencias necesarias para evitar incompatibilidades o falta de requisitos. Este proceso permite que el manejo de miles de cientos de softwares sea manejado de manera eficiente y rápida, ya que las consultas de cada requerimiento se trabajan de forma local hasta definir la acción a tomar con el paquete.

Los manejadores de paquetes están diseñados para eliminar la necesidad de instalar o actualizar aplicaciones de forma manual. Esto es muy útil en sistemas operativos como Linux en donde existen cientos o miles de paquetes de software distintos para un sin número de arquitecturas.

En Linux los Manejadores de Paquetes pueden servir para Instalar, Desinstalar y Actualizar Aplicaciones. Al mismo tiempo permiten tareas como búsqueda, reparación, administración de dependencias, entre otras tareas relacionadas.

Algunos ejemplos

Cada Sistema Operativo moderno dispone de su Manejador de Paquetes. Dependiendo de la familia de la distribución podremos reconocer cuál es el Manejador que le administra.

Existe un gran número de manejares por lo cual solo mencionaré los de mayor relevancia en las distribuciones de mayor uso del mercado:

DistribuciónManejador de PaquetesHerramientas de Resolución
Debian, Ubuntu dpkg apt, aptitude
Ret Hat, open Suse, Fedora RPM apt4rm, zypp, yum, dnf
Arch Linux, Frugalware Pacman Makepkg
Arch Linux, Debian, Knoppix, Mint, Ubuntu, Fedora, Gentoo, OpenSUSE, Red Hat and Slackware Zero Install 0install

En lo adelante estaré escribiendo sobre el uso de estos manejadores, específicamente dpkg y rpm ya que son los Manejadores de Paquetes de las distribuciones de mayor uso y con las que manejo mayor experiencia.

Como nota curiosa les doy una relación de Manejadores de Paquetes en otros Sistemas Operativos:

Sistema OperativoManejador de Paquetes
macOS (OS X) Mac App Store, Homebrew, Steam, Zero Install
iOS App Store, Cydia
Android Google Play, GetJar, Amazon Appstore
Windows Windows Store, Xbox Live, Cygwin, Zero Install (Really?!), Steam
BSD dpkg, OpenPKG
Solaris Image Packaging System, pjgsrc, OpenPKG

Related Articles

Related Articles - External Sources