RPM (Red Hat Package Manager) è un noto gestore pacchetti abbastanza diffuso tra le distribuzioni Linux, tra cui lo stesso Red Hat, Fedora, CentOS, openSUSE e Tizen. Si tratta di un gestore introdotto nel 1997 e basato su pms, un sistema di pacchetti della distribuzione Linux Bogus. Il formato omonimo è anche uno standard ufficiale all’interno della struttura Linux Standard Base. Di recente il gestore pacchetti si è aggiornato alla versione 4.20, con novità e miglioramenti vari.
RPM 4.20: i cambiamenti dell’ultima versione
Tra le principali novità di RPM 4.20 c’è il supporto al sistema di build dichiarativo. Ciò consentirà al gestore di compilare e installare automaticamente le sorgenti base del sistema ogni volta che gli sviluppatori specificheranno il sistema build (Autotools o CMake) che viene usato per le applicazioni. Permette anche di ridurre la ridondanza del boilerplate (codice copia che viene riutilizzato), permettendo ai pacchetti software di modificare queste procedure, adattandole alle necessità delle distribuzioni.
Vengono poi introdotte migliorie dinamiche ai file spec, i quali descrivono come creare pacchetti RPM, che in questa versione possono ora includere direttive che non impattano nella procedura di creazione del pacchetto, permettendo maggiore modularità e una manutenzione più facile. Ogni pacchetto ha anche una directory che è controllata direttamente dal gestore pacchetti, in modo da rendere più facile l’organizzazione delle build e impedire conflitti tra pacchetti differenti durante la procedura di build.
C’è anche un nuovo plugin, denominato unshare, che consente di isolare gli scriplet, ovvero comandi eseguiti prima o dopo l’installazione di un pacchetto. Grazie al nuovo plugin, i comandi possono essere ora isolati per impedirne l’accesso accidentale al file system o alla rete, migliorando la sicurezza e la coerenza.
Oltre a ciò, RPM 4.20 supporta anche formati moderni, come l’output JSON per le query, facilitando l’integrazione di altri strumenti che fanno uso del gestore pacchetti. Non mancano migliorie ai comandi che riguardano le chiavi crittografiche e la firma dei pacchetti, oltre a un supporto migliore per le build riproducibili, un nuovo protocollo multi-file e altre novità che è possibile consultare nella lista ufficiale dei cambiamenti.