Che cos'è il formato di file RPM?
I file con estensione .rpm sono pacchetti software utilizzati sui sistemi operativi basati su Linux. Originariamente il formato .rpm è stato sviluppato da Red Hat per la propria distribuzione Linux, ma oggi è ampiamente utilizzato in Fedora, RHEL, CentOS, openSUSE, Mageia e molte altre distribuzioni.
Un file .rpm è un pacchetto software che contiene tutto il necessario per installare una specifica applicazione su un sistema Linux compatibile. RPM originariamente significava Red Hat Package Manager; il progetto è ora mantenuto dalla comunità open-source su RPM.org e lo strumento da riga di comando è chiamato semplicemente rpm. Il formato è stato progettato per rendere semplice l'installazione e la distribuzione delle applicazioni Linux, in modo che l'utente finale non debba gestire i singoli file richiesti per l'installazione.
Internamente, un .rpm ha una struttura binaria composta da una sezione lead, un'intestazione della firma GPG, un'intestazione dei metadati con tag e un payload .cpio compresso che contiene i file effettivi. I pacchetti moderni comprimono tale payload con XZ/LZMA; sono supportati anche gzip, bzip2 e Zstd. I pacchetti vengono installati tramite dnf (Fedora/RHEL) o zypper (openSUSE), che risolvono automaticamente le dipendenze. Una variante .src.rpm trasporta il codice sorgente e le istruzioni di compilazione invece dei binari pronti all'uso. Su Windows o macOS, strumenti come 7-Zip possono estrarre il contenuto di un .rpm per l'ispezione, sebbene gli script di installazione non possano essere eseguiti al di fuori di un sistema Linux nativo basato su RPM. L'equivalente più vicino sui sistemi basati su Debian è il formato .deb.
Sicurezza e incolumità
RISCHIO: MEDIUMI pacchetti RPM eseguono script di installazione/disinstallazione come root, quindi un .rpm malevolo può compromettere completamente un sistema. Installa solo RPM da fornitori/repository affidabili e verifica prima la firma GPG: rpm --checksig package.rpm (e importa la chiave del fornitore). Le distribuzioni avvisano prima di installare pacchetti non firmati. Su Windows/macOS un .rpm non può essere eseguito, quindi ispezionarlo lì è innocuo. Evita siti casuali di «conversione da rpm a exe» o «apritori rpm» - sono ingannevoli (gli RPM non girano su Windows) e spesso includono adware.
Dettagli del formato
in sintesiProgrammi che aprono file RPM
rpm2cpio package.rpm | cpio -idmv per estrarre i file dal pacchetto su macOS per l'ispezione. sudo alien -i package.rpm converte e installa come .deb. Usare con cautela - il formato .deb nativo è preferibile. sudo dnf install ./package.rpm - installa il pacchetto e risolve automaticamente le dipendenze. Preferito rispetto a rpm puro. sudo zypper install ./package.rpm - installa con risoluzione delle dipendenze sui sistemi SUSE. sudo rpm -ivh package.rpm per installare, rpm -qlp per elencare i file, rpm --checksig per verificare. Non risolve automaticamente le dipendenze. Dettagli tecnici
specifiche approfondite| Tipo MIME | application/x-rpm (accettato anche: application/x-redhat-package-manager) |
| Magic bytes del file | ED AB EE DB all'offset 0 - la firma lead RPM «edabeedb» |
| Struttura interna | Sezione lead → Intestazione firma GPG → Intestazione metadati con tag → Payload cpio compresso |
| Compressione payload | XZ/LZMA (default moderno su Fedora/RHEL), gzip, bzip2 o Zstd; selezionabile per build del pacchetto |
| Ordine dei byte dell'intestazione | Big-endian; ogni voce di tag memorizza un tipo a 4 byte, un conteggio a 4 byte e un offset nell'archivio dati |
| Firma del pacchetto | Firma GPG incorporata nell'intestazione della firma; verificata con `rpm --checksig` |
| Metadati delle dipendenze | Tag Requires, Provides, Conflicts e Obsoletes memorizzati nell'intestazione principale per la risoluzione automatica |
| Scriptlet di installazione | Script pre- e post-installazione (%pre/%post) e pre- e post-disinstallazione (%preun/%postun) incorporati nel pacchetto |
| Integrità per singolo file | Digest SHA-256 per file memorizzati nell'intestazione (MD5 sui pacchetti più vecchi); controllati dopo l'installazione |
| Versione formato pacchetto | v4 (attuale, toolchain RPM 4.x); formato RPM v6 in fase di sviluppo attivo su RPM.org |
| Gestori pacchetti associati | `dnf` (Fedora, RHEL, CentOS Stream), `zypper` (openSUSE/SUSE), `rpm` (comando di basso livello) |
| Variante pacchetto sorgente | `.src.rpm` (SRPM) contiene il tarball sorgente e la ricetta di build `.spec` invece dei binari compilati |
| Piattaforme di installazione supportate | Distribuzioni Linux basate su RPM: Red Hat, Fedora, RHEL, CentOS, openSUSE, Rocky Linux, AlmaLinux, Mageia |
| Dimensione tipica del file | Da decine di KB (piccole utility) a diverse centinaia di MB (grandi applicazioni, toolchain di sviluppo o firmware) |
| Rilocabilità | I pacchetti possono essere contrassegnati come rilocabili, consentendo l'installazione in un percorso prefissato definito dall'utente |
| Rilasciato | 1997 (RPM, with Red Hat Linux 5.0; rpm-software-management is the current upstream) |
| Ultima versione | RPM v4 package format (RPM 4.20.x, 2024); RPM v6 format in development |
| Standard aperto | Sì · royalty-free |
| Specifica | rpm-software-management.github.io |
Conversioni RPM
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file RPM.
Domande frequenti
Come si installa un file .rpm su Linux?
sudo dnf install ./file.rpm; su openSUSE: sudo zypper install ./file.rpm. Questi risolvono automaticamente le dipendenze. Anche il comando di basso livello sudo rpm -ivh file.rpm funziona, ma non recupererà le dipendenze mancanti.Come si apre un file .rpm su Windows?
Come si installa un .rpm su Ubuntu/Debian?
sudo alien -i file.rpm, ma è più sicuro cercare un .deb nativo, un Flatpak o un'AppImage dello stesso programma.Qual è la differenza tra RPM e DEB?
Come posso vedere cosa c'è dentro un .rpm senza installarlo?
rpm -qlp file.rpm elenca i suoi file e rpm -qip file.rpm mostra le sue informazioni; oppure esegui rpm2cpio file.rpm | cpio -idmv per estrarli. Su Windows, aprilo con 7-Zip.Perché ricevo l'errore «dipendenze fallite» installando un RPM?
dnf install ./file.rpm (o zypper) invece di rpm puro, così il gestore pacchetti scaricherà le dipendenze dai tuoi repository.