Vad är filformatet RPM?
Filer med filändelsen .rpm är paketfiler som används på Linux-baserade operativsystem. Ursprungligen utvecklades .rpm-formatet av Red Hat för deras egen Linux-distribution, men idag används det i stor utsträckning i Fedora, RHEL, CentOS, openSUSE, Mageia och många andra distributioner.
En .rpm-fil är ett programvarupaket som innehåller allt som behövs för att installera en specifik applikation på ett kompatibelt Linux-system. RPM stod ursprungligen för Red Hat Package Manager; projektet underhålls nu av öppen källkod-communityn på RPM.org och kommandoradsverktyget kallas helt enkelt rpm. Formatet designades för att göra installation och distribution av Linux-applikationer enkel, så att slutanvändaren inte behöver hantera enskilda filer som krävs för installation.
Internt har en .rpm en binär struktur som består av en lead-sektion, ett GPG-signaturhuvud, ett taggat metadatahuvud och en komprimerad .cpio-nyttolast som innehåller de faktiska filerna. Moderna paket komprimerar den nyttolasten med XZ/LZMA; gzip, bzip2 och Zstd stöds också. Paket installeras via dnf (Fedora/RHEL) eller zypper (openSUSE), vilka löser beroenden automatiskt. En .src.rpm-variant innehåller källkod och bygginstruktioner istället för körbara binärer. På Windows eller macOS kan verktyg som 7-Zip extrahera innehållet i en .rpm för inspektion, även om installationsskript inte kan köras utanför ett infött RPM-baserat Linux-system. Den närmaste motsvarigheten på Debian-baserade system är .deb-formatet.
Säkerhet & trygghet
RISK: MEDIUMRPM-paket kör installations-/avinstallationsskript som root, så en skadlig .rpm kan helt kompromettera ett system. Installera endast RPM-filer från betrodda leverantörer/förråd, och verifiera GPG-signaturen först: rpm --checksig package.rpm (och importera leverantörens nyckel). Distributioner varnar innan osignerade paket installeras. På Windows/macOS kan en .rpm inte köras, så att inspektera den där är ofarligt. Undvik slumpmässiga «rpm to exe» eller «rpm opener»-webbplatser - de är vilseledande (RPM:er körs inte på Windows) och innehåller ofta annonsprogram.
Formatdetaljer
i ett nötskalProgram som öppnar RPM-filer
rpm2cpio package.rpm | cpio -idmv för att extrahera filer från paketet på macOS för inspektion. sudo alien -i package.rpm konverterar och installerar som .deb. Använd med försiktighet - infödd .deb föredras. sudo dnf install ./package.rpm - installerar paketet och löser beroenden automatiskt. Föredras framför rå rpm. sudo zypper install ./package.rpm - installerar med beroendehantering på SUSE-system. sudo rpm -ivh package.rpm för att installera, rpm -qlp för att lista filer, rpm --checksig för att verifiera. Löser inte beroenden automatiskt. Tekniska detaljer
djup specifikation| MIME-typ | application/x-rpm (även accepterad: application/x-redhat-package-manager) |
| Filens magic bytes | ED AB EE DB vid offset 0 - «edabeedb» RPM lead-signatur |
| Intern struktur | Lead-sektion → GPG-signaturhuvud → taggat metadatahuvud → komprimerad cpio-nyttolast |
| Komprimering av nyttolast | XZ/LZMA (modern standard på Fedora/RHEL), gzip, bzip2 eller Zstd; valbart per paketbygge |
| Header byte-ordning | Big-endian; varje tagg-post lagrar en 4-byte typ, 4-byte antal och offset i datalagret |
| Paketsignering | GPG-signatur inbäddad i signaturhuvudet; verifieras med `rpm --checksig` |
| Metadata för beroenden | Requires, Provides, Conflicts och Obsoletes-taggar lagrade i huvudheadern för automatisk lösning |
| Installationsskript | Pre- och post-install (%pre/%post) samt pre- och post-uninstall (%preun/%postun) skript inbäddade i paketet |
| Integritet per fil | SHA-256-kontrollsummor per fil lagrade i headern (MD5 på äldre paket); kontrolleras efter installation |
| Version av paketformat | v4 (nuvarande, RPM 4.x-verktygskedja); RPM v6-format under aktiv utveckling på RPM.org |
| Associerade pakethanterare | `dnf` (Fedora, RHEL, CentOS Stream), `zypper` (openSUSE/SUSE), `rpm` (lågnivåkommando) |
| Källkodspaket-variant | `.src.rpm` (SRPM) innehåller källkodsarkiv och `.spec`-byggrecept istället för kompilerade binärer |
| Plattformar som stöds | RPM-baserade Linux-distributioner: Red Hat, Fedora, RHEL, CentOS, openSUSE, Rocky Linux, AlmaLinux, Mageia |
| Typisk filstorlek | Tiotals KB (små verktyg) till flera hundra MB (stora applikationer, utvecklingsverktyg eller firmware) |
| Relokerbarhet | Paket kan flaggas som relokerbara, vilket tillåter installation till en användardefinierad sökväg |
| Släppt | 1997 (RPM, with Red Hat Linux 5.0; rpm-software-management is the current upstream) |
| Senaste version | RPM v4 package format (RPM 4.20.x, 2024); RPM v6 format in development |
| Öppen standard | Ja · royaltyfri |
| Specifikation | rpm-software-management.github.io |
RPM-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om RPM-filer.
Vanliga frågor
Hur installerar jag en .rpm-fil på Linux?
sudo dnf install ./file.rpm; på openSUSE: sudo zypper install ./file.rpm. Dessa löser beroenden automatiskt. Det lågnivåverktyget sudo rpm -ivh file.rpm fungerar också men hämtar inte saknade beroenden.Hur öppnar jag en .rpm-fil på Windows?
Hur installerar jag en .rpm på Ubuntu/Debian?
sudo alien -i file.rpm, men det är säkrare att leta efter en infödd .deb, Flatpak eller AppImage av samma program.Vad är skillnaden mellan RPM och DEB?
Hur ser jag vad som finns inuti en .rpm utan att installera den?
rpm -qlp file.rpm listar dess filer och rpm -qip file.rpm visar dess information; eller kör rpm2cpio file.rpm | cpio -idmv för att extrahera dem. På Windows, öppna den med 7-Zip.Varför får jag «failed dependencies» när jag installerar en RPM?
dnf install ./file.rpm (eller zypper) istället för rå rpm, så att pakethanteraren hämtar beroendena från dina förråd.