O que é o formato de ficheiro RPM?
Arquivos com a extensão .rpm são arquivos de pacotes usados em sistemas operacionais baseados em Linux. Originalmente, o formato .rpm foi desenvolvido pela Red Hat para sua própria distribuição Linux, mas hoje é amplamente utilizado no Fedora, RHEL, CentOS, openSUSE, Mageia e muitas outras distribuições.
Um arquivo .rpm é um pacote de software que contém tudo o que é necessário para instalar um aplicativo específico em um sistema Linux compatível. RPM originalmente significava Red Hat Package Manager; o projeto agora é mantido pela comunidade de código aberto em RPM.org e a ferramenta de linha de comando é chamada simplesmente de rpm. O formato foi projetado para tornar a instalação e distribuição de aplicativos Linux direta, para que o usuário final não precise gerenciar arquivos individuais necessários para a instalação.
Internamente, um .rpm possui uma estrutura binária composta por uma seção principal (lead), um cabeçalho de assinatura GPG, um cabeçalho de metadados etiquetados e um payload .cpio compactado contendo os arquivos reais. Pacotes modernos compactam esse payload com XZ/LZMA; gzip, bzip2 e Zstd também são suportados. Os pacotes são instalados via dnf (Fedora/RHEL) ou zypper (openSUSE), que resolvem dependências automaticamente. Uma variante .src.rpm carrega o código-fonte e instruções de compilação em vez de binários prontos para execução. No Windows ou macOS, ferramentas como 7-Zip podem extrair o conteúdo do .rpm para inspeção, embora os scripts de instalação não possam ser executados fora de um sistema Linux nativo baseado em RPM. O equivalente mais próximo em sistemas baseados em Debian é o formato .deb.
Segurança e proteção
RISCO: MEDIUMPacotes RPM executam scripts de instalação/desinstalação como root, portanto, um .rpm malicioso pode comprometer totalmente um sistema. Instale apenas RPMs de fornecedores/repositórios confiáveis e verifique a assinatura GPG primeiro: rpm --checksig package.rpm (e importe a chave do fornecedor). As distros avisam antes de instalar pacotes não assinados. No Windows/macOS, um .rpm não pode ser executado, portanto, inspecioná-lo lá é inofensivo. Evite sites aleatórios de «rpm para exe» ou «abridor de rpm» - eles são enganosos (RPMs não rodam no Windows) e geralmente incluem adware.
Detalhes do formato
em resumoProgramas que abrem arquivos RPM
rpm2cpio package.rpm | cpio -idmv para extrair arquivos do pacote no macOS para inspeção. sudo alien -i package.rpm converte e instala como .deb. Use com cuidado - o .deb nativo é preferível. sudo dnf install ./package.rpm - instala o pacote e resolve dependências automaticamente. Preferível ao rpm puro. sudo zypper install ./package.rpm - instala com resolução de dependências em sistemas SUSE. sudo rpm -ivh package.rpm para instalar, rpm -qlp para listar arquivos, rpm --checksig para verificar. Não resolve dependências automaticamente. Detalhes técnicos
especificação profunda| Tipo MIME | application/x-rpm (também aceito: application/x-redhat-package-manager) |
| Assinatura do arquivo | ED AB EE DB no deslocamento 0 - a assinatura lead RPM «edabeedb» |
| Estrutura interna | Seção Lead → Cabeçalho de assinatura GPG → cabeçalho de metadados etiquetados → payload cpio compactado |
| Compactação do payload | XZ/LZMA (padrão moderno no Fedora/RHEL), gzip, bzip2 ou Zstd; selecionável por compilação de pacote |
| Ordem dos bytes do cabeçalho | Big-endian; cada entrada de tag armazena um tipo de 4 bytes, contagem de 4 bytes e deslocamento no armazenamento de dados |
| Assinatura do pacote | Assinatura GPG incorporada no cabeçalho de assinatura; verificada com `rpm --checksig` |
| Metadados de dependência | Tags Requires, Provides, Conflicts e Obsoletes armazenadas no cabeçalho principal para resolução automática |
| Scriptlets de instalação | Scripts pré e pós-instalação (%pre/%post) e pré e pós-desinstalação (%preun/%postun) incorporados no pacote |
| Integridade por arquivo | Resumos SHA-256 por arquivo armazenados no cabeçalho (MD5 em pacotes antigos); verificados após a instalação |
| Versão do formato do pacote | v4 (atual, toolchain RPM 4.x); formato RPM v6 em desenvolvimento ativo em RPM.org |
| Gerenciadores de pacotes associados | `dnf` (Fedora, RHEL, CentOS Stream), `zypper` (openSUSE/SUSE), `rpm` (comando de baixo nível) |
| Variante de pacote de origem | `.src.rpm` (SRPM) contém o tarball de origem e a receita de compilação `.spec` em vez de binários compilados |
| Plataformas de instalação suportadas | Distribuições Linux baseadas em RPM: Red Hat, Fedora, RHEL, CentOS, openSUSE, Rocky Linux, AlmaLinux, Mageia |
| Tamanho típico do arquivo | Dezenas de KB (pequenos utilitários) a várias centenas de MB (grandes aplicativos, toolchains de desenvolvimento ou firmware) |
| Relocabilidade | Pacotes podem ser marcados como relocáveis, permitindo a instalação em um caminho de prefixo definido pelo usuário |
| Lançado | 1997 (RPM, with Red Hat Linux 5.0; rpm-software-management is the current upstream) |
| Versão mais recente | RPM v4 package format (RPM 4.20.x, 2024); RPM v6 format in development |
| Padrão aberto | Sim · livre de royalties |
| Especificação | rpm-software-management.github.io |
Conversões de RPM
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos RPM.
Perguntas frequentes
Como instalo um arquivo .rpm no Linux?
sudo dnf install ./file.rpm; no openSUSE: sudo zypper install ./file.rpm. Estes resolvem dependências automaticamente. O comando de baixo nível sudo rpm -ivh file.rpm também funciona, mas não buscará dependências ausentes.Como abro um arquivo .rpm no Windows?
Como instalo um .rpm no Ubuntu/Debian?
sudo alien -i file.rpm, mas é mais seguro procurar por um .deb nativo, Flatpak ou AppImage do mesmo programa.Qual é a diferença entre RPM e DEB?
Como vejo o que há dentro de um .rpm sem instalá-lo?
rpm -qlp file.rpm lista seus arquivos e rpm -qip file.rpm mostra suas informações; ou execute rpm2cpio file.rpm | cpio -idmv para extraí-los. No Windows, abra-o com 7-Zip.Por que recebo «dependências falhas» ao instalar um RPM?
dnf install ./file.rpm (ou zypper) em vez do rpm puro, para que o gerenciador de pacotes baixe as dependências dos seus repositórios.