RPM Package Manager é uma ferramenta de gerenciamento de pacotes projetada para instalar, atualizar, desinstalar, verificar e solicitar programas
Foi anunciado o lançamento da nova versão do gerenciador de pacotes “RPM 4.19”, destacando as melhorias e correções que foram feitas, bem como melhorias em APIS, suporte, um novo sistema de compilação CMake, entre outras coisas adicionais.
Atualmente o projeto RPM4 é desenvolvido pela Red Hat e é utilizado em distribuições como RHEL (incluindo projetos derivados do 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 é atualizado desde 2010).
Um pacote RPM pode conter um conjunto arbitrário de arquivos. A maioria Os arquivos RPM são "RPM binários" (ou BRPM) que contém a versão compilada de algum software. Existem também RPMs de origem (ou SRPMs) que contêm o código-fonte usado para construir um pacote binário. SRPMs normalmente têm a extensão de arquivo “.src.rpm” (.spm em sistemas de arquivos limitados a 3 caracteres de extensão, por exemplo, antigo DOS FAT).
Principais novos recursos do RPM 4.19
Nesta nova versão do RPM 4.19 que se apresenta, uma de suas novidades que se destaca é que foi adicionado suporte para arquivos “.specpart” para geração dinâmica de arquivos de especificação, bem como «–generate-subpacotes» adicionado a find_lang.sh que usa .specpart.
Outra mudança que se destaca nesta nova versão do RPM 4.19 é quee fornece integração com o diretório de conta de usuário do sistema sysusers.d para processamento automático de usuários e grupos, além de também agregar suporte para geração de usuários e grupos de arquivos /etc/passwd, /etc/group e sysusers.d incluído no pacote.
Em relação às melhorias de suporte, destaca-se que os níveis de arquitetura x86-64 () foram adicionados como arquiteturas, além do fato de que corrigido como os modelos x86 são derivados em rpmrc, Também foi feita uma alteração no sistema de compilação CMake que substitui o Autotools, bem como fakechroot foi substituído pela tecnologia de contêiner.
Também podemos descobrir que o suporte para scriptlets %preuntrans e %postuntrans foi adicionado nos arquivos de especificações, o utilitário rpmsort foi adicionado para classificar as versões do pacote rpm.
Além disso, foram adicionadas as opções “–nopreuntrans”, “–nopostuntrans” e “–nosysusers” para desabilitar scripts e criar usuários e grupos automaticamente durante a instalação do pacote.
Das outras mudanças que se destacam nesta nova versão:
- Faça com que as informações do usuário/grupo funcionem de maneira confiável no chroot
- Torne o maquinário rpmscript compatível com chroot
- Corrigida a regressão do gancho do plugin por arquivo introduzida na versão 4.18
- Suprimir a mensagem de aviso de bloqueio de inibição quando o serviço DBus não estiver disponível
- Corrigir inclusões ausentes no macOS
- A função relacionada ao arquivo classificadorrpmfcNew() foi declarada obsoleta
- Corrigido o problema de ignorar o código de saída de scripts filhos no caso de EINTR
- O código de ativação do thread rpmioe foi simplificado e limpo.
- O bloco %files e o utilitário de linha de comando agora suportam globbing no estilo shell e escape de caracteres especiais.
- Remova algumas outras verificações de tempo de configuração antigas e redundantes
- Divida as traduções em um projeto separado
- O padrão é a localidade C.UTF-8, permite fallback para C
- Bibliotecas foram exportadas como uma configuração cmake “find_package()”
- As funções rpmGlobPath(), rpmEscape() e rpmUnescape() foram adicionadas à API.
- A paralelização de assembly agora é feita levando em consideração a memória e o espaço de endereço.
- Adicionada documentação de desenvolvimento na criação de documentação.
- Várias outras adições e correções
- Para projetos que usam CMake, a função find_package(rpm) é fornecida.
- Corrigida uma falha de segmentação em um argumento não encadeável para uma chamada de macro de Lua
Finalmente se você estiver interessado em saber mais sobre isso desta nova versão, você pode verificar os detalhes no link a seguir.