Les ditributions de la famille Red Hat (donc Fedora et CentOS) utilise le système de paquet RPM (Debian, donc Ubuntu, utilise les paquets DEB). J’ai été confronté au problème suivant : comment voir le contenu d’un paquet RPM et comment en extraire le contenu sans l’installer ?

Il faut juste connaitre les commandes qui suivent …

Afficher le contenu

Il faut regarder les options de la commande rpm, elles sont nombreuses.

Pour voir le contenu d’un rpm :

    rpm -qpl <paquet.rpm>

Ce qui donne pour un paquet pas trop gros :

    # rpm -qlp icu-3.6-5.11.2.i386.rpm
    attention: icu-3.6-5.11.2.i386.rpm: Entete V3 DSA signature: NOKEY, key ID e8562897
    /usr/bin/derb
    /usr/bin/genbrk
    /usr/bin/gencnval
    /usr/bin/genctd
    /usr/bin/genrb
    /usr/bin/makeconv
    /usr/bin/pkgdata
    /usr/bin/uconv
    /usr/sbin/genccode
    /usr/sbin/gencmn
    /usr/sbin/gensprep
    /usr/sbin/genuca
    /usr/sbin/icupkg
    /usr/sbin/icuswap
    /usr/share/doc/icu-3.6
    /usr/share/doc/icu-3.6/license.html
    /usr/share/doc/icu-3.6/readme.html
    /usr/share/man/man1/derb.1.gz
    /usr/share/man/man1/genbrk.1.gz
    /usr/share/man/man1/gencnval.1.gz
    /usr/share/man/man1/genctd.1.gz
    /usr/share/man/man1/genrb.1.gz
    /usr/share/man/man1/makeconv.1.gz
    /usr/share/man/man1/pkgdata.1.gz
    /usr/share/man/man1/uconv.1.gz
    /usr/share/man/man8/genccode.8.gz
    /usr/share/man/man8/gencmn.8.gz
    /usr/share/man/man8/gensprep.8.gz
    /usr/share/man/man8/genuca.8.gz
    /usr/share/man/man8/icupkg.8.gz

Extraire les fichiers d’un RPM

Pour l’extraction, il faut renvoyer le contenu vers la commande cpio :

    rpm2cpio paquet.rpm | cpio --extract

Cela aura pour effet de copier les fichier dans les répertoires de destination.

 

Sources