Hva er RPM-filformatet?
Filer med filendelsen .rpm er pakkefiler som brukes på Linux-baserte operativsystemer. Opprinnelig ble .rpm-formatet utviklet av Red Hat for deres egen Linux-distribusjon, men i dag er det mye brukt på tvers av Fedora, RHEL, CentOS, openSUSE, Mageia og mange andre distribusjoner.
En .rpm-fil er en programvarepakke som inneholder alt som trengs for å installere en spesifikk applikasjon på et kompatibelt Linux-system. RPM sto opprinnelig for Red Hat Package Manager; prosjektet vedlikeholdes nå av åpen kildekode-fellesskapet på RPM.org, og kommandolinjeverktøyet kalles ganske enkelt rpm. Formatet ble designet for å gjøre installasjon og distribusjon av Linux-applikasjoner rett frem, slik at sluttbrukeren slipper å administrere individuelle filer som kreves for installasjon.
Internt har en .rpm en binær struktur bestående av en «lead»-seksjon, en GPG-signatur-header, en tagget metadata-header og en komprimert .cpio-nyttelast som inneholder de faktiske filene. Moderne pakker komprimerer denne nyttelasten med XZ/LZMA; gzip, bzip2 og Zstd støttes også. Pakker installeres via dnf (Fedora/RHEL) eller zypper (openSUSE), som løser avhengigheter automatisk. En .src.rpm-variant inneholder kildekode og byggeinstruksjoner i stedet for kjørbare binærfiler. På Windows eller macOS kan verktøy som 7-Zip pakke ut .rpm-innhold for inspeksjon, selv om installasjonsskript ikke kan kjøres utenfor et innfødt RPM-basert Linux-system. Den nærmeste ekvivalenten på Debian-baserte systemer er .deb-formatet.
Sikkerhet og trygghet
RISIKO: MEDIUMRPM-pakker kjører installasjons-/avinstallasjonsskript som root, så en ondsinnet .rpm kan kompromittere et system fullstendig. Installer kun RPM-filer fra pålitelige leverandører/arkiver, og verifiser GPG-signaturen først: rpm --checksig pakke.rpm (og importer leverandørens nøkkel). Distribusjoner advarer før installasjon av usignerte pakker. På Windows/macOS kan ikke en .rpm kjøre, så inspeksjon der er ufarlig. Unngå tilfeldige «rpm to exe» eller «rpm opener»-sider - de er villedende (RPM-er kjører ikke på Windows) og inneholder ofte reklamevare.
Formatdetaljer
i et nøtteskallProgrammer som åpner RPM-filer
rpm2cpio pakke.rpm | cpio -idmv for å pakke ut filer fra pakken på macOS for inspeksjon. sudo alien -i pakke.rpm konverterer og installerer som .deb. Bruk med forsiktighet - innfødt .deb er foretrukket. sudo dnf install ./pakke.rpm - installerer pakken og løser avhengigheter automatisk. Foretrukket over rå rpm. sudo zypper install ./pakke.rpm - installerer med avhengighetsløsning på SUSE-systemer. sudo rpm -ivh pakke.rpm for å installere, rpm -qlp for å liste filer, rpm --checksig for å verifisere. Løser ikke avhengigheter automatisk. Tekniske detaljer
dyp spesifikasjon| MIME-type | application/x-rpm (også akseptert: application/x-redhat-package-manager) |
| Fil-signatur (magic bytes) | ED AB EE DB ved offset 0 - «edabeedb» RPM lead-signatur |
| Intern struktur | Lead-seksjon → GPG-signatur-header → tagget metadata-header → komprimert cpio-nyttelast |
| Nyttelast-komprimering | XZ/LZMA (moderne standard på Fedora/RHEL), gzip, bzip2, eller Zstd; valgbart per pakkebygg |
| Header-byterekkefølge | Big-endian; hver tag-oppføring lagrer en 4-byte type, 4-byte antall og offset inn i datalageret |
| Pakkesignering | GPG-signatur innebygd i signatur-headeren; verifisert med `rpm --checksig` |
| Metadata for avhengigheter | Requires, Provides, Conflicts, og Obsoletes-tagger lagret i hovedheaderen for automatisk løsning |
| Installasjonsskript | Pre- og post-install (%pre/%post) og pre- og post-uninstall (%preun/%postun) skript innebygd i pakken |
| Integritet per fil | SHA-256-kontrollsummer per fil lagret i headeren (MD5 på eldre pakker); sjekkes etter installasjon |
| Pakkens formatversjon | v4 (nåværende, RPM 4.x-verktøykjede); RPM v6-format er under aktiv utvikling hos RPM.org |
| Tilknyttede pakkebehandlere | `dnf` (Fedora, RHEL, CentOS Stream), `zypper` (openSUSE/SUSE), `rpm` (lavnivå-kommando) |
| Kildepakke-variant | `.src.rpm` (SRPM) inneholder kildetekst-arkivet og `.spec`-byggoppskriften i stedet for kompilerte binærfiler |
| Støttede plattformer | RPM-baserte Linux-distribusjoner: Red Hat, Fedora, RHEL, CentOS, openSUSE, Rocky Linux, AlmaLinux, Mageia |
| Typisk filstørrelse | Fra noen få KB (små verktøy) til flere hundre MB (store applikasjoner, utviklerverktøy eller fastvare) |
| Relokaliserbarhet | Pakker kan flagges som relokaliserbare, noe som tillater installasjon til en brukerdefinert sti |
| Utgitt | 1997 (RPM, with Red Hat Linux 5.0; rpm-software-management is the current upstream) |
| Siste versjon | RPM v4 package format (RPM 4.20.x, 2024); RPM v6 format in development |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | rpm-software-management.github.io |
RPM-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om RPM-filer.
Ofte stilte spørsmål
Hvordan installerer jeg en .rpm-fil på Linux?
sudo dnf install ./fil.rpm; på openSUSE: sudo zypper install ./fil.rpm. Disse løser avhengigheter automatisk. Lavnivåverktøyet sudo rpm -ivh fil.rpm fungerer også, men vil ikke hente manglende avhengigheter.Hvordan åpner jeg en .rpm-fil på Windows?
Hvordan installerer jeg en .rpm på Ubuntu/Debian?
sudo alien -i fil.rpm, men det er tryggere å se etter en innfødt .deb, Flatpak eller AppImage av det samme programmet.Hva er forskjellen mellom RPM og DEB?
Hvordan ser jeg hva som er inni en .rpm uten å installere den?
rpm -qlp fil.rpm lister opp filene og rpm -qip fil.rpm viser info; eller kjør rpm2cpio fil.rpm | cpio -idmv for å pakke dem ut. På Windows, åpne den med 7-Zip.Hvorfor får jeg «failed dependencies» når jeg installerer en RPM?
dnf install ./fil.rpm (eller zypper) i stedet for rå rpm, slik at pakkebehandleren henter inn avhengighetene fra arkivene dine.