Ultimamente mi sono interessato alla pacchettizzazione di software su Fedora attraverso il sistema rpm per creare dei pacchetti di Converseen per questo sistema operativo. Non spiegherò in questa sede come si pacchettizza un software (anche perché è una procedura molto complicata e sarebbe meglio rivolgersi a google piuttosto) bensì come estrarne il contenuto attraverso il terminale.
Premetto che è vero che, File Roller, il programma di archiviazione di default di Gnome è capace di estrarre il contenuto degli rpm. Ma siccome sul terminale è più divertente e Ark non estrae gli rpm spiegherò come compiere questa procedura attraverso rpm2cpio e cpio.
Mettiamo che l'rpm da estrarre sia test.rpm
Basta dare i comandi:
rpm2cpio test.rpm > file.cpio
cpio -i --make-directories --no-absolute-filenames < file.cpio
Il primo comando converte l'rpm in archivio cpio mentre il secondo ne estrae il contenuto preservando l'intero albero delle cartelle.
Ieri pomeriggio, in preda al cazzeggio più estremo, ho immaginato che realizzando questo script sarebbe stato tutto più facile:
if [ $1 == "" ] then echo "Usage:" echo "unrpm MyFile.rpm" else if [ -f $1 ] then rpm2cpio $1 > file.cpio cpio -i --make-directories --no-absolute-filenames < file.cpio rm -f file.cpio else echo "ERROR: $1 doesn't exist." fi fi
Attraverso questo script è possibile estrarre l'rpm attraverso la sinstassi:
./unrpm test.rpm
Scarica lo script da qui e imposta il bit di esecuzione!