Comando yum: uso y opciones, yum-utils y consulta de repositorios

Entorno de pruebaFamilia RHELAlmaLinux 9.8Cuenta root
Comandos de paquetesyumyum-utilsrpmUbicación/usr/bin/yum

El comando yum es el comando de gestión de paquetes que instala, actualiza y elimina paquetes en Linux de la familia RHEL. Al ejecutar los comandos de consulta y de comprobación de actualizaciones y las herramientas de yum-utils en un servidor AlmaLinux 9, yum se ejecutó como el mismo programa que dnf y su salida también fue la misma que la de dnf.

La lista de repositorios, los números de release de los paquetes y las horas de instalación de la salida de abajo son valores de ejemplo.

1️⃣ Uso básico del comando yum: yum y dnf

En AlmaLinux 9, al escribir yum se ejecuta dnf. Esto se debe a que /usr/bin/yum es un enlace que apunta a dnf-3.

ls -l /usr/bin/yum /usr/bin/dnf
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/yum -> dnf-3

Los dos archivos eran enlaces que apuntan a dnf-3. Por eso, aunque ejecutes yum --version, aparece la versión de dnf.

yum --version
4.14.0
  Installed: dnf-0:4.14.0-21.el9_8.alma.1.noarch at Mon Oct  5 10:12:30 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Fri May  1 09:30:00 2026

  Installed: rpm-0:4.16.1.3-23.el9.x86_64 at Mon Oct  5 10:12:08 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Thu Mar 12 08:15:20 2026

La primera línea, 4.14.0, es la versión de dnf, y debajo siguen las horas en que se instalaron los paquetes dnf y rpm. La versión de rpm aparece también porque yum, al final, instala los paquetes que recibe del repositorio con rpm.

La forma básica del comando es yum, opciones, comando y nombre del paquete, en ese orden. La primera línea de --help muestra esta forma y debajo sigue la lista de comandos.

yum --help | head -n 12
usage: yum [options] COMMAND

List of Main Commands:

alias                     List or create command aliases
autoremove                remove all unneeded packages that were originally installed as dependencies
check                     check for problems in the packagedb
check-update              check for available package upgrades
clean                     remove cached data
deplist                   [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them
distro-sync               synchronize installed packages to the latest available versions
downgrade                 Downgrade a package

Los comandos más usados están reunidos en la tabla.

ComandoTarea
list installedLista de paquetes instalados (si añades un nombre de paquete, solo ese paquete)
list updatesLista de paquetes con una versión nueva en el repositorio
check-updateComprobar si hay actualizaciones (código de salida 100 si las hay)
infoVersión, tamaño, repositorio y descripción de un paquete
searchBuscar paquetes por nombre y resumen
installInstalar un paquete (con sus dependencias)
removeEliminar un paquete (igual que erase)
updateActualizar los paquetes instalados a una versión nueva (igual que upgrade)
autoremoveEliminar paquetes que se instalaron como dependencias y ya no se necesitan
makecacheDescargar por adelantado los metadatos del repositorio y crear la caché
clean allBorrar toda la caché descargada
repolistLista de repositorios activados
deplistDependencias y paquetes que las proporcionan (se recomienda repoquery --deplist)
historyHistorial de transacciones de instalación y eliminación

2️⃣ Opciones del comando yum: -y, -C, exclude, enablerepo

Las opciones van entre yum y el comando. -y responde que sí a las preguntas, así que se usa en scripts; cuando ejecutas update a mano en un servidor de producción, es mejor no usar -y, leer la tabla de la transacción y responder tú.

OpciónCopiarDescripción
-C, --cacheonlyUsa solo la caché descargada sin conectarse a los repositorios.
-q, --quietOculta avisos como la línea de metadatos y muestra solo el resultado.
--showduplicatesMuestra tanto la versión instalada como las versiones del repositorio del mismo paquete.
--exclude=PKG, -x PKGExcluye ese paquete de este comando (admite patrones como kernel*).
--enablerepo=REPOActiva un repositorio desactivado solo para este comando.
--versionMuestra las versiones de yum (dnf) y rpm.
-h, --helpMuestra la ayuda.
OpciónCopiarDescripción
-y, --assumeyesResponde que sí a todas las preguntas.
-v, --verboseMuestra con detalle lo que hace.
--disablerepo=REPODesactiva un repositorio activado solo para este comando.
--skip-brokenOmite los paquetes con dependencias rotas y continúa con el resto.

-C muestra el resultado solo con la caché descargada, sin conectarse a los repositorios. La primera línea indica cuándo se actualizó la caché por última vez, y el resultado empieza en la segunda línea.

yum -C list tree
Last metadata expiration check: 0:35:03 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

Con -q desaparece la primera línea y solo se muestra el resultado.

yum -C -q list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

--showduplicates muestra lado a lado la versión instalada y las versiones que hay en el repositorio.

yum -C --showduplicates list libavif
Last metadata expiration check: 0:38:15 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
libavif.x86_64                      0.11.1-7.el9                       @epel
Available Packages
libavif.x86_64                      1.1.1-2.el9                        epel

0.11.1 en Installed Packages y 1.1.1 en Available Packages son dos versiones del mismo paquete. La versión del repositorio es más alta, así que libavif tiene una actualización pendiente.

--exclude quita ese paquete de este comando.

yum -C --exclude=libavif check-update libavif libdav1d
Last metadata expiration check: 0:35:10 ago on Thu Oct 29 05:32:35 2026.

libdav1d.x86_64                         1.5.4-2.el9                         epel

Se indicaron dos paquetes, pero libavif quedó fuera y solo quedó libdav1d. Si lo añades a update, actualiza todo menos ese paquete.

3️⃣ Gestión de paquetes con yum y orden de actualización

Aunque conozcas las opciones, primero tienes que ver qué está instalado y qué hay de nuevo para decidir qué paquetes actualizar. Por eso empezamos por los comandos que comprueban los paquetes instalados.

yum -C list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

@baseos en la última columna es el repositorio del que se instaló el paquete. Si lo consultas con rpm -q, la versión aparece en una sola línea.

rpm -q tree htop libavif
tree-1.8.0-12.el9.x86_64
package htop is not installed
libavif-0.11.1-7.el9.x86_64

Con un paquete que no está instalado, la salida termina con una sola línea not installed, y el código de salida es 1.

Los paquetes con una versión nueva en el repositorio se consultan con list updates.

yum -C list updates libavif libdav1d
Last metadata expiration check: 0:35:07 ago on Thu Oct 29 05:32:35 2026.
Available Upgrades
libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel

Los paquetes bajo Available Upgrades son los que tienen una versión nueva. Si no añades un nombre de paquete, revisa todo lo instalado.

check-update también informa de la misma lista mediante el código de salida.

yum -C check-update libavif libdav1d; echo $?
Last metadata expiration check: 0:35:08 ago on Thu Oct 29 05:32:35 2026.

libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel
100

El 100 de la última línea es el código de salida. Es 100 si hay actualizaciones y 0 si no las hay, así que en los scripts se decide según este valor.

La actualización se hace en el orden makecache, update, autoremove.

yum makecache

makecache descarga por adelantado los metadatos del repositorio. update los descarga por su cuenta, así que puedes omitirlo.

yum update

update sube todos los paquetes instalados a su versión nueva y también resuelve las dependencias.

yum update libavif

Si añades un nombre de paquete, solo actualiza ese paquete.

yum autoremove

autoremove elimina los paquetes que se instalaron como dependencias y que ya no se necesitan. Se ejecuta después de update.

yum update --exclude='kernel*'

Para actualizar sin el kernel, añade un patrón de kernel a --exclude. Tras actualizar el kernel hay que reiniciar para funcionar con el kernel nuevo; para saber si hace falta reiniciar, usa needs-restarting de yum-utils.

4️⃣ Herramientas de yum-utils: yumdownloader, repoquery, needs-restarting

En AlmaLinux 9, yum-utils es una capa de compatibilidad que proporciona dnf-plugins-core. Los nombres de los comandos son los de la época del antiguo YUM, pero lo que se ejecuta son plugins de dnf.

yum -C info yum-utils
Last metadata expiration check: 0:38:12 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
Name         : yum-utils
Version      : 4.3.0
Release      : 14.el9
Architecture : noarch
Size         : 23 k
Source       : dnf-plugins-core-4.3.0-14.el9.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Yum-utils CLI compatibility layer
URL          : https://github.com/rpm-software-management/dnf-plugins-core
License      : GPLv2+
Description  : As a Yum-utils CLI compatibility layer, supplies in CLI shims for
             : debuginfo-install, repograph, package-cleanup, repoclosure, repomanage,
             : repoquery, reposync, repotrack, repodiff, builddep, config-manager, debug,
             : download and yum-groups-manager that use new implementations using DNF.

Source es dnf-plugins-core y Summary es Yum-utils CLI compatibility layer. Si no está instalado, se instala con [yum install yum-utils].

Los 17 comandos que instala este paquete aparecen con rpm -ql.

rpm -ql yum-utils | grep bin/
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
ls -l /usr/bin/yumdownloader /usr/bin/repoquery /usr/bin/needs-restarting /usr/bin/yum-config-manager
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/needs-restarting -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/repoquery -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yum-config-manager -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yumdownloader -> /usr/libexec/dnf-utils

Todos eran enlaces que apuntan a un único archivo, /usr/libexec/dnf-utils. Las herramientas más usadas y lo que hacen están agrupadas en un árbol.

yum-utilsUn paquete — los 17 comandos son enlaces a /usr/libexec/dnf-utils
yumdownloaderDescarga de archivos de paquete (.rpm) · --urls solo muestra las direcciones
repoqueryConsulta de la lista de archivos, las dependencias y las dependencias inversas de un paquete
needs-restartingComprobar si hace falta reiniciar el servidor o servicios tras una actualización
package-cleanupBuscar paquetes duplicados, huérfanos y con problemas
yum-builddepInstalar los paquetes necesarios para compilar un RPM fuente
yum-config-managerActivar, desactivar y añadir repositorios (cambia los archivos de configuración)
repoclosure · repodiff · repomanage · repo-graphRevisar, comparar, limpiar y graficar repositorios
reposync · repotrackDescargar repositorios y grupos de paquetes
debuginfo-install · find-repos-of-install · yum-debug-dump · yum-debug-restore · yum-groups-managerInformación de depuración · repositorio de origen · volcado y restauración de la configuración · gestión de grupos

yumdownloader solo descarga los archivos de paquete sin instalarlos. Con --urls, solo muestra las direcciones desde las que descargaría.

yumdownloader --urls tree
Last metadata expiration check: 0:35:16 ago on Thu Oct 29 05:32:35 2026.
https://repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/Packages/tree-1.8.0-12.el9.x86_64.rpm

La dirección del repositorio y el nombre del archivo aparecen en una línea. Con esta dirección puedes descargar por adelantado los archivos que vas a llevar a un servidor sin acceso a internet para instalarlos.

repoquery consulta los archivos que instala un paquete y sus dependencias.

repoquery -l tree
Last metadata expiration check: 0:35:17 ago on Thu Oct 29 05:32:35 2026.
/usr/bin/tree
/usr/lib/.build-id
/usr/lib/.build-id/e0
/usr/lib/.build-id/e0/e2ec3d46003583b56979e08d437395bd0d2a07
/usr/share/doc/tree
/usr/share/doc/tree/README
/usr/share/licenses/tree
/usr/share/licenses/tree/LICENSE
/usr/share/man/man1/tree.1.gz

-l es la lista de archivos de ese paquete. Contiene un ejecutable, además de la documentación, la licencia y el manual.

repoquery --requires tree
Last metadata expiration check: 0:35:19 ago on Thu Oct 29 05:32:35 2026.
libc.so.6(GLIBC_2.34)(64bit)
rtld(GNU_HASH)

--requires muestra las bibliotecas que necesita. yum deplist muestra lo mismo y añade los paquetes que las proporcionan, pero su ayuda lo marca como deprecated, así que se usa repoquery --deplist en su lugar.

yum -C repoquery --deplist tree
Last metadata expiration check: 0:38:17 ago on Thu Oct 29 05:32:35 2026.
package: tree-1.8.0-12.el9.x86_64
  dependency: libc.so.6(GLIBC_2.34)(64bit)
   provider: glibc-2.34-170.el9_8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.34-170.el9_8.i686
   provider: glibc-2.34-170.el9_8.x86_64

Las líneas dependency son lo que se necesita, y las líneas provider son los paquetes que lo proporcionan.

Para saber si hace falta reiniciar después de una actualización, usa needs-restarting -r.

needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

Después de actualizar el kernel o una biblioteca principal, el aviso cambia para indicar que hace falta reiniciar y termina con el código de salida 1.

Si ejecutas package-cleanup sin opciones, solo muestra un aviso que te pide elegir qué comprobación hacer.

package-cleanup
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

5️⃣ Consultar los repositorios de yum: repolist y la opción enablerepo

Aunque tengas las herramientas, si el paquete no está en un repositorio, yum no encuentra nada. Por eso primero se mira qué repositorios de yum están activados.

yum repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

repolist muestra solo los repositorios con enabled=1 en su archivo de configuración. baseos y appstream son los repositorios básicos de la distribución, y epel es un repositorio añadido aparte.

yum repolist --all | head -n 12
repo id                       repo name                                 status
appstream                     AlmaLinux 9 - AppStream                   enabled
appstream-debuginfo           AlmaLinux 9 - AppStream - Debug           disabled
appstream-source              AlmaLinux 9 - AppStream - Source          disabled
baseos                        AlmaLinux 9 - BaseOS                      enabled
baseos-debuginfo              AlmaLinux 9 - BaseOS - Debug              disabled
baseos-source                 AlmaLinux 9 - BaseOS - Source             disabled
crb                           AlmaLinux 9 - CRB                         disabled
crb-debuginfo                 AlmaLinux 9 - CRB - Debug                 disabled
crb-source                    AlmaLinux 9 - CRB - Source                disabled
epel                          Extra Packages for Enterprise Linux 9 - x enabled
epel-cisco-openh264           Extra Packages for Enterprise Linux 9 ope enabled

--all muestra también los repositorios desactivados, junto con la columna status. Los paquetes de un repositorio disabled como crb no se pueden instalar tal cual.

Para activar un repositorio desactivado solo en este comando, añade --enablerepo.

yum --enablerepo=crb repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
crb                 AlmaLinux 9 - CRB
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

crb ya aparece en la lista. El archivo de configuración no cambia, así que en el siguiente comando vuelve a quedar fuera. Para dejar un repositorio activado de forma permanente, cambia el archivo de configuración con yum-config-manager. Puedes ver cómo se activan y desactivan los repositorios pulsando los botones de comando del diagrama de abajo.

🧭 Repositorios donde yum busca paquetes
Diagrama explicativo
🔍 Comando
$ yum repolist--enablerepo=crb repolist--disablerepo=epel repolist
baseosActivadoActivado solo esta vezDesactivado solo esta vez
appstreamActivadoActivado solo esta vezDesactivado solo esta vez
extrasActivadoActivado solo esta vezDesactivado solo esta vez
epelActivadoActivado solo esta vezDesactivado solo esta vez
crbDesactivadoActivado solo esta vezDesactivado solo esta vez
➜
yumRepositorios donde se buscan paquetes564
repolist muestra solo los repositorios con enabled=1 en su archivo de configuración. yum busca paquetes solo en los repositorios de esta lista. Los paquetes de un repositorio desactivado como crb no se ven.
Si añades --enablerepo=crb, crb se activa solo para este comando y entra en la lista. El archivo de configuración no cambia, así que en el siguiente comando vuelve a quedar fuera.
Si añades --disablerepo=epel, epel queda fuera solo en este comando. Para activar o desactivar un repositorio de forma permanente, usa yum-config-manager, que cambia el archivo de configuración.

Añadir un repositorio nuevo como EPEL se reduce a instalar un único paquete de repositorio.

yum install epel-release

Al instalarlo se crea el archivo epel.repo en /etc/yum.repos.d/, y epel aparece en repolist.

🔲 Simulador del comando yum

En el simulador de abajo puedes escribir tú mismo yum list, check-update, repolist y los comandos de yum-utils y ver la salida. La lista de repositorios usa los mismos valores de ejemplo que el artículo, y los comandos de instalación, eliminación y actualización solo muestran un aviso.

Simulador del comando yumyum 4.14.0
[root@server work]#
Con las teclas ↑↓ recuperas los comandos que escribiste antes.

🔢 FAQ & contenido recomendado

No. Si escribes yum delete, termina con el error No such command: delete. Para eliminar un paquete se usa yum remove, y erase hace lo mismo.

Son el mismo comando. En dnf, update es otro nombre de upgrade, así que incluso yum help update muestra una ayuda que empieza por usage: yum upgrade.

Con -C, list e info se ejecutan con la caché descargada, sin conectarse a los repositorios. Para instalar un paquete, se descarga el archivo .rpm con yumdownloader en otro servidor, se lleva al servidor y se pasa la ruta del archivo a install.

ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Demuestra que eres humano: 2   +   9   =