¿Qué es el formato de archivo RPM?
Los archivos con la extensión .rpm son archivos de paquetes utilizados en sistemas operativos basados en Linux. Originalmente, el formato .rpm fue desarrollado por Red Hat para su propia distribución de Linux, pero hoy en día se utiliza ampliamente en Fedora, RHEL, CentOS, openSUSE, Mageia y muchas otras distribuciones.
Un archivo .rpm es un paquete de software que contiene todo lo necesario para instalar una aplicación específica en un sistema Linux compatible. RPM originalmente significaba Red Hat Package Manager; el proyecto ahora es mantenido por la comunidad de código abierto en RPM.org y la herramienta de línea de comandos se llama simplemente rpm. El formato fue diseñado para que la instalación y distribución de aplicaciones Linux sea sencilla, de modo que el usuario final no tenga que gestionar los archivos individuales necesarios para la instalación.
Internamente, un .rpm tiene una estructura binaria compuesta por una sección principal (lead), un encabezado de firma GPG, un encabezado de metadatos etiquetados y una carga útil .cpio comprimida que contiene los archivos reales. Los paquetes modernos comprimen esa carga útil con XZ/LZMA; también se admiten gzip, bzip2 y Zstd. Los paquetes se instalan a través de dnf (Fedora/RHEL) o zypper (openSUSE), que resuelven las dependencias automáticamente. Una variante .src.rpm lleva el código fuente y las instrucciones de compilación en lugar de los binarios listos para ejecutar. En Windows o macOS, herramientas como 7-Zip pueden extraer el contenido de un .rpm para su inspección, aunque los scripts de instalación no pueden ejecutarse fuera de un sistema Linux nativo basado en RPM. El equivalente más cercano en sistemas basados en Debian es el formato .deb.
Seguridad y protección
RIESGO: MEDIUMLos paquetes RPM ejecutan scripts de instalación/desinstalación como root, por lo que un .rpm malicioso puede comprometer totalmente un sistema. Instale solo RPM de proveedores/repositorios de confianza y verifique primero la firma GPG: rpm --checksig package.rpm (e importe la clave del proveedor). Las distribuciones advierten antes de instalar paquetes no firmados. En Windows/macOS un .rpm no puede ejecutarse, por lo que inspeccionarlo allí es inofensivo. Evite sitios aleatorios de «rpm a exe» o «abridor de rpm»; son engañosos (los RPM no se ejecutan en Windows) y a menudo incluyen adware.
Detalles del formato
en pocas palabrasProgramas que abren archivos RPM
rpm2cpio package.rpm | cpio -idmv para extraer archivos del paquete en macOS para su inspección. sudo alien -i package.rpm lo convierte e instala como .deb. Úselo con precaución; se prefiere el .deb nativo. sudo dnf install ./package.rpm: instala el paquete y resuelve las dependencias automáticamente. Preferido sobre rpm puro. sudo zypper install ./package.rpm: instala con resolución de dependencias en sistemas SUSE. sudo rpm -ivh package.rpm para instalar, rpm -qlp para listar archivos, rpm --checksig para verificar. No resuelve dependencias automáticamente. Detalles técnicos
especificación profunda| Tipo MIME | application/x-rpm (también aceptado: application/x-redhat-package-manager) |
| Bytes mágicos del archivo | ED AB EE DB en el desplazamiento 0 - la firma lead de RPM «edabeedb» |
| Estructura interna | Sección lead → Encabezado de firma GPG → encabezado de metadatos etiquetados → carga útil cpio comprimida |
| Compresión de la carga útil | XZ/LZMA (predeterminado moderno en Fedora/RHEL), gzip, bzip2 o Zstd; seleccionable por compilación de paquete |
| Orden de bytes del encabezado | Big-endian; cada entrada de etiqueta almacena un tipo de 4 bytes, un recuento de 4 bytes y un desplazamiento en el almacén de datos |
| Firma del paquete | Firma GPG incrustada en el encabezado de firma; verificada con `rpm --checksig` |
| Metadatos de dependencia | Etiquetas Requires, Provides, Conflicts y Obsoletes almacenadas en el encabezado principal para resolución automática |
| Scriptlets de instalación | Scripts de pre y post-instalación (%pre/%post) y pre y post-desinstalación (%preun/%postun) incrustados en el paquete |
| Integridad por archivo | Resúmenes SHA-256 por archivo almacenados en el encabezado (MD5 en paquetes antiguos); verificados después de la instalación |
| Versión del formato de paquete | v4 (actual, cadena de herramientas RPM 4.x); formato RPM v6 en desarrollo activo en RPM.org |
| Gestores de paquetes asociados | `dnf` (Fedora, RHEL, CentOS Stream), `zypper` (openSUSE/SUSE), `rpm` (comando de bajo nivel) |
| Variante de paquete de fuente | `.src.rpm` (SRPM) contiene el tarball de origen y la receta de compilación `.spec` en lugar de binarios compilados |
| Plataformas de instalación compatibles | Distribuciones de Linux basadas en RPM: Red Hat, Fedora, RHEL, CentOS, openSUSE, Rocky Linux, AlmaLinux, Mageia |
| Tamaño de archivo típico | Desde decenas de KB (utilidades pequeñas) hasta varios cientos de MB (aplicaciones grandes, cadenas de herramientas de desarrollo o firmware) |
| Relocalización | Los paquetes pueden marcarse como relocalizables, lo que permite la instalación en una ruta de prefijo definida por el usuario |
| Lanzado | 1997 (RPM, with Red Hat Linux 5.0; rpm-software-management is the current upstream) |
| Última versión | RPM v4 package format (RPM 4.20.x, 2024); RPM v6 format in development |
| Estándar abierto | Sí · libre de regalías |
| Especificación | rpm-software-management.github.io |
Conversiones de RPM
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos RPM.
Preguntas frecuentes
¿Cómo instalo un archivo .rpm en Linux?
sudo dnf install ./file.rpm; en openSUSE: sudo zypper install ./file.rpm. Estos resuelven las dependencias automáticamente. El comando de bajo nivel sudo rpm -ivh file.rpm también funciona, pero no descargará las dependencias faltantes.¿Cómo abro un archivo .rpm en Windows?
¿Cómo instalo un .rpm en Ubuntu/Debian?
sudo alien -i file.rpm, pero es más seguro buscar un .deb nativo, Flatpak o AppImage del mismo programa.¿Cuál es la diferencia entre RPM y DEB?
¿Cómo veo qué hay dentro de un .rpm sin instalarlo?
rpm -qlp file.rpm enumera sus archivos y rpm -qip file.rpm muestra su información; o ejecute rpm2cpio file.rpm | cpio -idmv para extraerlos. En Windows, ábralo con 7-Zip.¿Por qué recibo «dependencias fallidas» al instalar un RPM?
dnf install ./file.rpm (o zypper) en lugar de rpm puro, para que el gestor de paquetes obtenga las dependencias de sus repositorios.