Introducción
La mayoría de los sistemas operativos modernos tipo Unix ofrecen un mecanismo centralizado para encontrar e instalar software. El software suele distribuirse en forma de paquetes , almacenados en repositorios . Trabajar con paquetes se conoce como gestión de paquetes . Los paquetes proporcionan los componentes principales de un sistema operativo, junto con bibliotecas, aplicaciones, servicios y documentación compartidos.
Un sistema de gestión de paquetes hace mucho más que una simple instalación de software. También proporciona herramientas para actualizar paquetes ya instalados. Los repositorios de paquetes ayudan a garantizar que el código se haya verificado para su uso en el sistema y que las versiones instaladas del software hayan sido aprobadas por los desarrolladores y los encargados del mantenimiento de los paquetes.
Al configurar servidores o entornos de desarrollo, a menudo es necesario buscar más allá de los repositorios oficiales. Los paquetes de la versión estable de una distribución pueden estar desactualizados, especialmente si se trata de software nuevo o en constante evolución. Sin embargo, la gestión de paquetes es una habilidad vital para los administradores de sistemas y desarrolladores, y la amplia gama de software empaquetado para las principales distribuciones es un recurso valioso.
Esta guía está pensada como una referencia rápida sobre los aspectos básicos de cómo encontrar, instalar y actualizar paquetes en una variedad de distribuciones, y debería ayudarle a trasladar ese conocimiento entre sistemas.
Sistemas de gestión de paquetes: una breve descripción general
La mayoría de los sistemas de paquetes se basan en colecciones de archivos de paquete. Un archivo de paquete suele ser un archivo que contiene aplicaciones compiladas y otros recursos utilizados por el software, junto con scripts de instalación. Los paquetes también contienen metadatos valiosos, como sus dependencias y una lista de otros paquetes necesarios para su instalación y ejecución.
Si bien su funcionalidad y beneficios son bastante similares, los formatos y herramientas de empaquetado varían según la plataforma:
- Para Debian/Ubuntu :
.deb
paquetes instalados porapt
ydpkg
- Para Rocky / Fedora / RHEL :
.rpm
paquetes instalados poryum
- Para FreeBSD :
.txz
paquetes instalados porpkg
En Debian y sistemas basados en él, como Ubuntu, Linux Mint y Raspbian, el formato del paquete es el .deb
archivo . apt
, la herramienta de empaquetado avanzado, proporciona comandos utilizados para las operaciones más comunes: buscar repositorios, instalar colecciones de paquetes y sus dependencias y administrar actualizaciones. apt
Los comandos funcionan como una interfaz para la dpkg
utilidad de nivel inferior, que maneja la instalación de .deb
archivos individuales en el sistema local y, a veces, se invoca directamente.
Las versiones recientes de la mayoría de las distribuciones derivadas de Debian incluyen un solo apt
comando, que ofrece una interfaz concisa y unificada para operaciones comunes que tradicionalmente han sido manejadas por los más específicos apt-get
y apt-cache
.
Rocky Linux, Fedora y otros miembros de la familia Red Hat usan archivos RPM. Estos solían usar un gestor de paquetes llamado yum
. En versiones recientes de Fedora y sus derivados, yum
ha sido reemplazado por dnf
, una bifurcación modernizada que conserva gran parte de yum
la interfaz de .
El sistema de paquetes binarios de FreeBSD se administra con el pkg
comando. FreeBSD también ofrece la Colección de Ports, una estructura de directorios local y herramientas que permiten al usuario obtener, compilar e instalar paquetes directamente desde el código fuente mediante Makefiles. Normalmente es mucho más práctico usar pkg
, pero en ocasiones no hay un paquete precompilado disponible o es posible que sea necesario cambiar las opciones de compilación.
Actualizar listas de paquetes
La mayoría de los sistemas mantienen una base de datos local de los paquetes disponibles en repositorios remotos. Es recomendable actualizar esta base de datos antes de instalar o actualizar paquetes. Como excepción parcial a este patrón, dnf
se buscarán actualizaciones antes de realizar algunas operaciones, pero se puede preguntar en cualquier momento si hay actualizaciones disponibles.
- Para Debian/Ubuntu :
sudo apt update
- Para Rocky / Fedora / RHEL :
dnf check-update
- Para paquetes FreeBSD :
sudo pkg update
- Para puertos FreeBSD :
sudo portsnap fetch update
Actualizar paquetes instalados
Asegurarse de que todo el software instalado en una máquina se mantenga actualizado sería una tarea enorme sin un sistema de paquetes. Sería necesario realizar un seguimiento de los cambios iniciales y las alertas de seguridad para cientos de paquetes diferentes. Si bien un gestor de paquetes no resuelve todos los problemas que surgen al actualizar software, sí permite mantener la mayoría de los componentes del sistema con unos pocos comandos.
En FreeBSD, actualizar los ports instalados puede introducir cambios importantes o requerir pasos de configuración manual. Se recomienda leer /usr/ports/UPDATING
antes de actualizar con portmaster
.
- Para Debian/Ubuntu :
sudo apt upgrade
- Para Rocky / Fedora / RHEL :
sudo dnf upgrade
- Para paquetes FreeBSD :
sudo pkg upgrade
Encuentra un paquete
La mayoría de las distribuciones ofrecen una interfaz gráfica o con menús para las colecciones de paquetes. Esta puede ser una buena manera de explorar por categoría y descubrir nuevo software. Sin embargo, a menudo la forma más rápida y eficaz de localizar un paquete es buscarlo con herramientas de línea de comandos.
- Para Debian/Ubuntu :
apt search search_string
- Para Rocky / Fedora / RHEL :
dnf search search_string
- Para paquetes FreeBSD :
pkg search search_string
Nota: En Rocky, Fedora o RHEL, puede buscar títulos y descripciones de paquetes juntos usando dnf search all
. En FreeBSD, puede buscar descripciones usandopkg search -D
Ver información sobre un paquete específico
Al decidir qué instalar, suele ser útil leer descripciones detalladas de los paquetes. Además de texto legible, estas suelen incluir metadatos como números de versión y una lista de las dependencias del paquete.
- Para Debian/Ubuntu :
apt show package
- Para Rocky / Fedora / RHEL :
dnf info package
- Para paquetes FreeBSD :
pkg info package
- Para puertos FreeBSD :
cd /usr/ports/category/port && cat pkg-descr
Instalar un paquete desde repositorios
Una vez que conoce el nombre de un paquete, generalmente puede instalarlo y sus dependencias con un solo comando. Generalmente, puede proporcionar varios paquetes para instalarlos a la vez enumerándolos todos.
- Para Debian/Ubuntu :
sudo apt install package
- Para Rocky / Fedora / RHEL :
sudo dnf install package
- Para paquetes FreeBSD :
sudo pkg install package
Instalar un paquete desde el sistema de archivos local
A veces, aunque el software no esté empaquetado oficialmente para un sistema operativo específico, un desarrollador o proveedor ofrece archivos de paquete para descargar. Generalmente, puedes obtenerlos con tu navegador web o mediante curl
la línea de comandos. Una vez que un paquete está en el sistema de destino, suele poder instalarse con un solo comando.
En sistemas derivados de Debian, dpkg
gestiona archivos de paquetes individuales. Si un paquete tiene dependencias no satisfechas, gdebi
suele ser posible recuperarlas de los repositorios oficiales.
En Rocky Linux, Fedora o RHEL dnf
se utiliza para instalar archivos individuales y también manejará las dependencias necesarias.
- Para Debian/Ubuntu :
sudo dpkg -i package.deb
- Para Rocky / Fedora / RHEL :
sudo dnf install package.rpm
- Para paquetes FreeBSD :
sudo pkg add package.txz
Eliminar uno o más paquetes instalados
Dado que un administrador de paquetes sabe qué archivos proporciona un paquete determinado, generalmente puede eliminarlos limpiamente de un sistema si el software ya no es necesario.
- Para Debian/Ubuntu :
sudo apt remove package
- Para Rocky / Fedora / RHEL :
sudo dnf erase package
- Para paquetes FreeBSD :
sudo pkg delete package
Obtener ayuda
Además de la documentación web, tenga en cuenta que las páginas del manual de Unix (generalmente conocidas como páginas man ) están disponibles para la mayoría de los comandos del shell. Para leer una página, utilice man
:
man page
En man
, puedes navegar con las flechas. Pulsa / para buscar texto dentro de la página y q para salir.
- Para Debian/Ubuntu :
man apt
- Para Rocky / Fedora / RHEL :
man dnf
- Para paquetes FreeBSD :
man pkg
- Para puertos FreeBSD :
man ports
Conclusión y lecturas adicionales
Esta guía ofrece una descripción general de las operaciones que pueden cruzarse entre sistemas, pero solo aborda superficialmente un tema complejo. Para obtener más detalles sobre un sistema específico, puede consultar los siguientes recursos:
- Esta guía cubre la gestión de paquetes de Ubuntu y Debian en detalle.
- Hay una página wiki de Fedora sobre
dnf
, y un manual oficial paradnf
sí mismo . - Esta guía cubre la gestión de paquetes de FreeBSD usando
pkg
. - El Manual de FreeBSD contiene una sección sobre el uso de la colección de puertos .