Wat is het RPM-bestandsformaat?
Bestanden met de extensie .rpm zijn pakketbestanden die worden gebruikt op Linux-gebaseerde besturingssystemen. Oorspronkelijk werd het .rpm-formaat ontwikkeld door Red Hat voor zijn eigen Linux-distributie, maar tegenwoordig wordt het breed gebruikt in Fedora, RHEL, CentOS, openSUSE, Mageia en vele andere distributies.
Een .rpm-bestand is een softwarepakket dat alles bevat wat nodig is om een specifieke applicatie te installeren op een compatibel Linux-systeem. RPM stond oorspronkelijk voor „Red Hat Package Manager”; het project wordt nu onderhouden door de open-source gemeenschap op RPM.org en de opdrachtregeltool wordt simpelweg rpm genoemd. Het formaat is ontworpen om de installatie en distributie van Linux-applicaties eenvoudig te maken, zodat de eindgebruiker geen individuele bestanden hoeft te beheren die nodig zijn voor de installatie.
Intern heeft een .rpm een binaire structuur bestaande uit een „lead”-sectie, een GPG-handtekeningheader, een getagde metadata-header en een gecomprimeerde .cpio payload die de eigenlijke bestanden bevat. Moderne pakketten comprimeren die payload met XZ/LZMA; gzip, bzip2 en Zstd worden ook ondersteund. Pakketten worden geïnstalleerd via dnf (Fedora/RHEL) of zypper (openSUSE), die afhankelijkheden automatisch oplossen. Een .src.rpm-variant bevat broncode en bouwinstructies in plaats van kant-en-klare binaire bestanden. Op Windows of macOS kunnen tools zoals 7-Zip de inhoud van een .rpm uitpakken voor inspectie, hoewel installatiescripts niet kunnen worden uitgevoerd buiten een native op RPM gebaseerd Linux-systeem. Het dichtstbijzijnde equivalent op Debian-gebaseerde systemen is het .deb-formaat.
Beveiliging & veiligheid
RISICO: MEDIUMRPM-pakketten voeren installatie-/deïnstallatiescripts uit als root, dus een kwaadaardige .rpm kan een systeem volledig compromitteren. Installeer alleen RPM's van vertrouwde leveranciers/repositories en verifieer eerst de GPG-handtekening: rpm --checksig package.rpm (en importeer de sleutel van de leverancier). Distributies waarschuwen voor het installeren van niet-ondertekende pakketten. Op Windows/macOS kan een .rpm niet worden uitgevoerd, dus het inspecteren ervan is daar onschadelijk. Vermijd willekeurige „rpm naar exe” of „rpm opener” sites - deze zijn misleidend (RPM's draaien niet op Windows) en bevatten vaak adware.
Formaatdetails
in een notendopProgramma's die RPM-bestanden openen
rpm2cpio package.rpm | cpio -idmv om bestanden uit het pakket uit te pakken op macOS voor inspectie. sudo alien -i package.rpm converteert en installeert als .deb. Gebruik met zorg - een native .deb heeft de voorkeur. sudo dnf install ./package.rpm - installeert het pakket en lost afhankelijkheden automatisch op. Heeft de voorkeur boven ruwe rpm. sudo zypper install ./package.rpm - installeert met afhankelijkheidsoplossing op SUSE-systemen. sudo rpm -ivh package.rpm om te installeren, rpm -qlp om bestanden te tonen, rpm --checksig om te verifiëren. Lost afhankelijkheden niet automatisch op. Technische details
diepe specificaties| MIME-type | application/x-rpm (ook geaccepteerd: application/x-redhat-package-manager) |
| Bestand magic bytes | ED AB EE DB op offset 0 - de „edabeedb” RPM lead-handtekening |
| Interne structuur | Lead-sectie → GPG-handtekeningheader → getagde metadata-header → gecomprimeerde cpio-payload |
| Payload-compressie | XZ/LZMA (moderne standaard op Fedora/RHEL), gzip, bzip2 of Zstd; selecteerbaar per pakketbouw |
| Header byte-volgorde | Big-endian; elke tag-ingang slaat een 4-byte type, 4-byte aantal en offset in de gegevensopslag op |
| Pakketondertekening | GPG-handtekening ingebed in de signature-header; geverifieerd met `rpm --checksig` |
| Metadata voor afhankelijkheden | Requires, Provides, Conflicts en Obsoletes tags opgeslagen in de hoofdheader voor automatische oplossing |
| Installatie-scriptlets | Pre- en post-installatie (%pre/%post) en pre- en post-deïnstallatie (%preun/%postun) scripts ingebed in het pakket |
| Integriteit per bestand | SHA-256 digests per bestand opgeslagen in de header (MD5 op oudere pakketten); gecontroleerd na installatie |
| Versie pakketformaat | v4 (huidig, RPM 4.x toolchain); RPM v6-formaat in actieve ontwikkeling op RPM.org |
| Bijbehorende pakketbeheerders | `dnf` (Fedora, RHEL, CentOS Stream), `zypper` (openSUSE/SUSE), `rpm` (low-level commando) |
| Bronpakket-variant | `.src.rpm` (SRPM) bevat de broncode-tarball en het `.spec` bouwrecept in plaats van gecompileerde binaire bestanden |
| Ondersteunde installatieplatforms | Op RPM gebaseerde Linux-distributies: Red Hat, Fedora, RHEL, CentOS, openSUSE, Rocky Linux, AlmaLinux, Mageia |
| Typische bestandsgrootte | Tientallen KB (kleine hulpprogramma's) tot honderden MB (grote applicaties, ontwikkeltools of firmware) |
| Verplaatsbaarheid | Pakketten kunnen als verplaatsbaar worden gemarkeerd, wat installatie naar een door de gebruiker gedefinieerd pad toestaat |
| Uitgebracht | 1997 (RPM, with Red Hat Linux 5.0; rpm-software-management is the current upstream) |
| Laatste versie | RPM v4 package format (RPM 4.20.x, 2024); RPM v6 format in development |
| Open standaard | Ja · royaltyvrij |
| Specificatie | rpm-software-management.github.io |
RPM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over RPM-bestanden.
Veelgestelde vragen
Hoe installeer ik een .rpm-bestand op Linux?
sudo dnf install ./file.rpm; op openSUSE: sudo zypper install ./file.rpm. Deze lossen afhankelijkheden automatisch op. De low-level opdracht sudo rpm -ivh file.rpm werkt ook, maar haalt geen ontbrekende afhankelijkheden op.Hoe open ik een .rpm-bestand op Windows?
Hoe installeer ik een .rpm op Ubuntu/Debian?
sudo alien -i file.rpm, maar het is veiliger om te zoeken naar een native .deb, Flatpak of AppImage van hetzelfde programma.Wat is het verschil tussen RPM en DEB?
Hoe zie ik wat er in een .rpm zit zonder deze te installeren?
rpm -qlp file.rpm toont de lijst met bestanden en rpm -qip file.rpm toont de informatie; of voer rpm2cpio file.rpm | cpio -idmv uit om ze uit te pakken. Op Windows open je het met 7-Zip.Waarom krijg ik „failed dependencies” bij het installeren van een RPM?
dnf install ./file.rpm (of zypper) in plaats van de ruwe rpm-opdracht, zodat de pakketbeheerder de afhankelijkheden uit je repositories ophaalt.