Il contenuto del file di un RPM viene solitamente installato. Ciò significa che i file RPM vengono copiati nelle posizioni appropriate nel file system in modo che possano essere utilizzati. Ad esempio, l'installazione dell'RPM binario bash posiziona il file "/bin/bash" nella posizione prevista. Per installare un RPM, utilizza "-i ” o “-U ” interruttore:
$ rpm -ivh bash-3.1-16.1.x86_64.rpm
Elenco dei file all'interno di un pacchetto RPM
Puoi ottenere un elenco dei file all'interno di un RPM eseguendo una query RPM e aggiungendo "-p ” interruttore:
$ rpm -q -l -p bash-3.1-16.1.x86_64.rpm /bin/bash /bin/sh /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc ...
Come estrarre file da un file di pacchetto RPM
A volte, potresti voler ottenere il contenuto o un singolo file da un pacchetto RPM. Per farlo, puoi utilizzare rpm2cpio strumento di conversione. Lo strumento rpm2cpio estrae il contenuto di un RPM sorgente o binario sotto forma di un archivio CPIO, non TAR. L'output rpm2cpio viene scritto nell'output standard e solitamente inviato tramite pipe al comando cpio.
1. Elencare i file in un file di pacchetto
In questo esempio, abbiamo utilizzato -t opzione per indirizzare cpio a produrre un "indice" dell'archivio creato da rpm2cpio. Questo può rendere molto più facile ottenere il nome file e il percorso corretti quando vuoi estrarre un file.
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -t
Si noti che il comando "rpm -qpl" mostra il nome del file come percorso assoluto "/bin/bash" ma l'output "cpio -t" utilizza invece il nome del percorso relativo "./bin/bash". Questo è molto utile perché puoi usare rpm2cpio come un normale utente per estrarre file che normalmente verrebbero installati in directory privilegiate.
L'esempio seguente mostra come appare l'output:
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -t ./bin/bash ./bin/sh ./etc/skel/.bash_logout ./etc/skel/.bash_profile ./etc/skel/.bashrc ... 10510 blocks
2. Estrarre uno o più file da un file di pacchetto
Usa rpm2cpio per generare l'archivio CPIO e usa l'opzione cpio “-i” per estrarre i file desiderati:
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -ivd ./bin/bash ./bin/bash 10510 blocks
$ ls -l /home/user/bin/bash total 744 -rwxr-xr-x 1 user user 753720 March 1 13:10 bash
In questo caso, le opzioni “-i “, “-v “ e “-d ” indirizza cpio a:
-i – Estrarre uno o più file da un archivio. I nomi dei file richiesti devono corrispondere esattamente al sommario "cpio -t" o a un modello di caratteri jolly simile a una shell. Se il file di destinazione esiste già, cpio rifiuterà di sovrascriverlo a meno che l'opzione "-u" non venga aggiunta al comando.
-d – Creare qualsiasi directory che preceda il nome file specificato nel comando cpio. Se le directory esistono già, l'opzione "-d" potrebbe essere omessa ma non danneggia se è sempre specificata.
-v – Visualizza i nomi di tutti i file elaborati, insieme alla dimensione del file di archivio CPIO, in blocchi da 512 byte. Nota che questa dimensione non è la dimensione del pacchetto RPM, che cpio non vede mai direttamente.
Se non vengono forniti nomi di file, tutti i file RPM verranno estratti.