E foi lançado o RPM 4.20 com suporte a sistemas de compilação declarativos, e mais. Confira as novidades dessa importante atualização.
RPM Package Manager é uma ferramenta de administração de pacotes projetada para instalar, atualizar, desinstalar, verificar e solicitar programas.
Um pacote RPM pode conter um conjunto arbitrário de arquivos. A maioria dos arquivos RPM é “RPM binário” (ou BRPM) que contém a versão compilada de algum software.
Também há “RPM de fonte” (source RPM, ou SRPM) que contém o código fonte usado para construir um pacote binário. O SRPM normalmente leva a extensão do arquivo “.src.rpm” (.spm em sistemas de arquivos limitados a 3 caracteres de extensão, por exemplo, DOS FAT antigo).
Atualmente o projeto RPM4 foi desenvolvido pela Red Hat e utilizado em distribuições como RHEL (inclui projetos derivados de CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS , Tizen e muitos outros.
Anteriormente, uma equipe de desenvolvimento independente desenvolveu o projeto RPM5, que não está diretamente relacionado ao RPM4 e atualmente está abandonado (não foi atualizado desde 2010).
Agora, foi anunciado o lançamento do RPM 4.20.
Novidades do RPM 4.20
Um dos maiores destaques do RPM 4.20.0 é a adição de suporte a sistemas de compilação declarativos.
Isso significa que os desenvolvedores agora podem especificar qual sistema de compilação (como Autotools ou CMake) está sendo usado para seu software, e o RPM preparará, compilará e instalará automaticamente as fontes de acordo com as melhores práticas desse sistema de compilação.
Esse recurso reduz o boilerplate redundante e fornece mais flexibilidade para os empacotadores de software ajustarem esses processos para se alinharem às preferências de distribuição.
Além disso, o RPM 4.20.0 introduz melhorias dinâmicas no arquivo de especificações.
Os arquivos de especificações são usados para descrever como construir pacotes RPM e, nesta versão, agora podem incluir novas diretivas que não afetam o processo de construção real, permitindo maior modularidade e manutenibilidade.
Além disso, cada pacote agora tem um diretório por construção controlado por RPM, o que ajuda a organizar as construções e evita conflitos entre diferentes pacotes durante o processo de construção.
Outro recurso interessante é o novo plug-in unshare, projetado para fornecer isolamento de scriptlet. Apenas especificamos que os scriptlets são comandos executados antes ou depois da instalação de um pacote.
Com o plug-in unshare, esses comandos podem ser isolados, evitando que acessem acidentalmente o sistema de arquivos ou a rede, melhorando assim a segurança e a consistência.
Em termos de usabilidade, o RPM 4.20.0 faz várias melhorias.
O comando rpmkeys, usado para gerenciar chaves criptográficas, agora tem opções para listar e excluir chaves, facilitando o gerenciamento de seus chaveiros pelos usuários.
Além disso, o rpmsign agora pode usar chaves ECDSA para assinar pacotes, adicionando um novo nível de flexibilidade criptográfica.
Para aqueles que preferem formatos modernos, o RPM agora suporta saída formatada em JSON para consultas, uma alternativa mais legível ao XML, e pode facilitar a integração com outras ferramentas que consomem dados RPM.
Outra mudança que vale a pena notar é que o utilitário rpm2archive, usado para converter RPMs em formatos de arquivo, agora suporta o formato de arquivo cpio, aumentando a compatibilidade com sistemas legados.
O antigo comando rpm2cpio agora é simplesmente um link simbólico para este utilitário atualizado.
Para desenvolvedores, a API de plugin público agora está oficialmente disponível, abrindo novas oportunidades para estender os recursos do RPM.
A adição de um novo protocolo multiarquivo também visa acelerar significativamente a geração de dependências — um recurso crucial para aqueles que mantêm pacotes grandes ou complexos.
O lançamento inclui melhorias voltadas para obter melhor suporte para compilações reproduzíveis, um aspecto essencial do desenvolvimento de software moderno que garante que as compilações possam ser recriadas consistentemente, independentemente de quando ou onde ocorram.
Em vista disso, o RPM agora fornece uma nova macro, %build_mtime_policy, que pode ser configurada para fixar carimbos de data e hora na época da data de origem ou no tempo de compilação, melhorando a consistência entre as compilações.
Por fim, várias correções de bugs e melhorias na qualidade de vida aumentam a confiabilidade e o desempenho.
Por exemplo, o RPM não tenta mais processar certos arquivos não executáveis, como Ruby, Python ou JavaScript, durante a remoção, tornando-o mais rápido e eficiente.
A higienização de comentários de especificação e sintaxe de recuo também foi aprimorada, garantindo especificações mais limpas e legíveis.
Para saber mais sobre essa versão do RPM, acesse a nota de lançamento.
Como instalar ou atualizar o RPM
O RPM já vem instalado nas distribuições que o utilizam, portanto para instalar a versão mais recente, basta manter o sistema atualizado.