Canali
![]() Ultime news
![]() Ultimi articoli
![]() Le ultime dal Forum |
![]() Correlati![]() TagPassa qui con il mouse e visualizza le istruzioni per utilizzare i tag!
Il pezzo che stai leggendo è stato pubblicato oltre un anno fa.
![]() I file RPM sono lo standard del mondo Linux per la distribuzione dei pacchetti software già compilati. Generalmente, è sufficiente aprirli con il relativo gestore per installare il software in questione. Ma... come fare se, invece di installare il pacchetto, siamo solamente interessati ad estrapolare da esso alcuni file? L'operazione, fortunatamente, è molto semplice. Nota: non è necessario che l'RPM in questione sia compatibile con il sistema corrente per estrapolarlo. Durante le prove, ho impiegato Ubuntu 32 bit per scompattare un rpm studiato per CentOS 64 bit senza problemi. Lo faccio tramite interfaccia graficaSe preferite lavorare tramite l'interfaccia grafica, potete agire direttamente dal menu contestuale del file rpm stesso: cliccate con il pulsante destro del mouse sull'rpm. Sotto Ubuntu, selezionate Apri con Gestore archivi. In caso la voce non fosse presente, seguite Apri con altra applicazione... e quindi individuate il programma nella lista. Se state lavorando con CentOS invece, selezionate Open with "Archive Manager". In caso la voce non fosse presente, il componente potrebbe non essere stato installato: potete risolvere facilmente impartendo sudo yum install unzip file-roller zip -y e digitando quindi la password di root. Riprovate quindi ad aprire l'rpm con il gestore d'archivi. Indipententemente dalla distribuzione in uso dovreste ora poter accedere ai file contenuti ed estrapolare quelli di vostro interesse tramite un semplice trascinamento Lo faccio da linea di comandoProcedere da linea di comando è un pochino meno immediato: dobbiamo infatti usare uno strumento chiamato rpm2cpio. Se state operando sotto CentOS, potete saltare direttamente al prossimo paragrafo: rpm2cpio è infatti parte integrante del pacchetto base e, quindi, è già disponibile. Se siete su Ubuntu, invece, dovete installarlo: aprite il terminale (Applicazioni -> Accessori -> Terminale), lanciate sudo apt-get install rpm2cpio -y, digitate la password di root ed il gioco è fatto. Panoramica di rpm2cpioLa funzione base di rpm2cpio è quella di trasformare un RPM in un file binario di tipo cpio. Il risultato viene quindi mostrato a terminale. Lanciando semplicemente rpm2cpio miofile.rpm, il programma vi mostrerà a video una serie di informazioni binarie indecifrabili. Per ottenere il risultato voluto, dobbiamo passare l'output generato al programma incaricato di gestire i file cpio, specificando a quest'ultimo che vogliamo estrarre uno o più file. Un esempio praticoVediamo ora un esempio pratico. Diciamo di voler estrarre tutti i file dall'rpm chiamato miofile.rpm, salvato all'interno della cartella /root/temporanea/ (vi raccomando di creare sempre una directory dedicata a contenere i file estratti o potreste creare un bel po' di confusione sull'hard disk!). Impartite quindi innanzitutto cd /root/temporanea/ per entrare in tale directory. A questo punto, siamo pronti a scompattare l'rpm: il comando da impartire è il seguente: rpm2cpio miofile.rpm | cpio -ivd Se tutto è andato per il verso giusto, dentro a /root/temporanea/ dovreste ritrovarvi una copia di tutti i file contenuti nell'rpm. Estrarre un file specificoSe volete solamente estrapolare uno specifico file dall'archivio senza scompattarlo interamente, dovete muovervi in due passi. Per prima cosa, lanciate rpm2cpio miofile.rpm | cpio -t per ottenere una lista di tutti i file contenuti (se ne state cercando uno in particolare, potete aiutarvi filtrando con grep: lancerete quindi qualcosa di simile a rpm2cpio miofile.rpm | cpio -t | grep nome_file_che_sto_cercando). A questo punto, copiate l'intero percorso del file desiderato che desiderate scompattare ed accodatelo alla chiamata per scompattare l'intero archivio vista in precedenza: facendo finta che il file desiderato sia stato mostrato come ./usr/lib64/httpd/modules/mod_expires.so, andremo a lanciare: rpm2cpio miofile.rpm | cpio -ivd ./usr/lib64/httpd/modules/mod_expires.so Ad operazione terminata, verrà creata la gerarchia di cartelle nella directory corrente: discendetela fino all'ultimo livello di profondità e vi troverete il vostro file. Per saperne di piùLa pagina ufficiale di rpm2cpio contiene altri esempi ed alcuni dettagli in più sul programma e sui parametri accettati. Segnala ad un amico |
© Copyright 2025 BlazeMedia srl - P. IVA 14742231005