GNU/Linux >> Tutoriels Linux >  >> Linux

Comment extraire le package RPM sans l'installer

Le contenu du fichier d'un RPM est généralement installé. Cela signifie que les fichiers RPM sont copiés à leurs emplacements appropriés dans le système de fichiers afin qu'ils puissent être utilisés. Par exemple, l'installation du RPM binaire bash place le fichier "/bin/bash" à l'emplacement prévu. Pour installer un RPM, utilisez soit le "-i ” ou “-U ” interrupteur :

$ rpm -ivh bash-3.1-16.1.x86_64.rpm

Liste des fichiers à l'intérieur d'un package RPM

Vous pouvez obtenir une liste des fichiers à l'intérieur d'un RPM en effectuant une requête RPM et en ajoutant le "-p ” interrupteur :

$ 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
...

Comment extraire des fichiers d'un fichier de package RPM

Parfois, vous souhaiterez peut-être obtenir le contenu ou un seul fichier d'un package RPM. Pour ce faire, vous pouvez utiliser le rpm2cpio outil de conversion. L'outil rpm2cpio extrait le contenu d'un RPM source ou binaire sous la forme d'une archive CPIO, et non d'une archive TAR. La sortie rpm2cpio est écrite sur la sortie standard et généralement redirigée vers la commande cpio.

1. Liste des fichiers dans un fichier de package

Dans cet exemple, nous avons utilisé le -t option pour demander à cpio de produire une « table des matières » de l'archive créée par rpm2cpio. Cela peut faciliter l'obtention du bon nom de fichier et du bon chemin lorsque vous souhaitez extraire un fichier.

$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -t

Notez que la commande "rpm -qpl" affiche le nom de fichier comme chemin absolu "/bin/bash" mais que la sortie "cpio -t" utilise le nom de chemin relatif "./bin/bash" à la place. C'est très pratique car vous pouvez utiliser rpm2cpio en tant qu'utilisateur ordinaire pour extraire des fichiers qui s'installeraient normalement dans des répertoires privilégiés.

L'exemple suivant montre comment la sortie apparaît :

$ 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. Extraire un ou plusieurs fichiers d'un fichier de package

Utilisez rpm2cpio pour générer l'archive CPIO et utilisez le commutateur cpio "-i" pour extraire les fichiers souhaités :

$ 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

Dans ce cas, les options "-i ", "-v ", et "-d ” dirige cpio vers :
-i – Extraire un ou plusieurs fichiers d'une archive. Le ou les noms de fichiers demandés doivent correspondre exactement à la table des matières "cpio -t" ou à un modèle de caractère générique de type shell. Si le fichier de destination existe déjà, cpio refusera de l'écraser à moins que le commutateur "-u" ne soit ajouté à la commande.
-d – Créez tous les répertoires qui précèdent le nom de fichier spécifié dans la commande cpio. Si les répertoires existent déjà, le commutateur "-d" peut être omis mais ne fait aucun mal s'il est toujours spécifié.
-v – Afficher les noms de tous les fichiers traités, ainsi que la taille du fichier d'archive CPIO, en blocs de 512 octets. Notez que cette taille n'est pas la taille du package RPM, que cpio ne voit jamais directement.

Si aucun nom de fichier n'est donné, tous les fichiers RPM seront extraits.


Linux
  1. Comment tester un paquet sans l'installer sous Linux

  2. Comment vérifier la version du package Linux avant de l'installer

  3. Comment créer un package RPM Linux

  4. RPM :erreur d'installation du package :cpio :échec de la lecture

  5. Comment vérifier l'intégrité du package rpm sous Linux

Comment installer RPM sur CentOS

Comment installer les packages RPM sur CentOS 8

Comment créer un package RPM à partir d'une archive tar

Comment télécharger des packages à l'aide d'APT sans les installer

Comment afficher et extraire des fichiers à partir de packages rpm, deb, depot et msi

Comment utiliser "yum downloadonly" pour télécharger un package sans l'installer