Comment puis-je extraire le contenu d'un rpm?
J'ai un rpm et je tiens à le traiter comme une archive. Je veux extraire le contenu dans un répertoire afin que je puisse inspecter le contenu. Je suis familier avec l'interrogation de commandes d'achat d'un paquet. Je ne voulons pas simplement une liste du contenu de la rpm. c'est à dire
$ rpm -qpl foo.rpm
Je veux inspecter le contenu de plusieurs fichiers contenus dans le rpm. Je ne veux pas installer le rpm. Je suis également conscient de la rpm capacité à faire des modifictions dans l' %post sections, et la vérification de ceux-ci. c'est à dire
$ rpm -qp --scripts foo.rpm
Toutefois, dans ce cas, est d'aucun intérêt pour moi.
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé le
rpm2cpio
de commande? Voir l'exemple ci-dessous:rpm2cpio.pl
De Référence: le cpio arguments sont
J'ai trouvé la réponse ici: lontar réponse
Pour ceux qui n'ont pas rpm2cpio, ici, est l'ancienne rpm2cpio.sh script
que des extraits de la charge utile à partir d'un *.package rpm.
Reposté pour la postérité ... et la prochaine génération.
Appeler comme ceci:
./rpm2cpio.sh .rpm | cpio -dimv
Parfois, vous pouvez rencontrer un problème avec l'intermédiaire TR /min archive:
Qui signifie qu'il pourrait être emballés, ces jours, il est de compression LZMA2, comme d'habitude, par
xz
:sinon, vous pourriez essayer:
rpm2cpio <file>.rpm | bsdtar -xf -
(pas de cpio) pour qu'il fonctionne.La plupart des distributions ont installé l'interface graphique app file-roller qui décompresse les fichiers tar, zip, rpm et beaucoup plus.
Cela va extraire le contenu dans le répertoire courant.
Le texte puissant gestionnaire de fichiers basé sur mc (Midnight commander, rappelant vaguement le Norton Commandant de la vieille époque DOS) a la capacité intégrée de l'inspection et déballage .tr /min et .rpm fichiers, juste "ouvrir" le .tr /min(s) fichier dans mc et sélectionnez
CONTENTS.cpio
: pour un rpm, vous aurez accès à l'arborescence de l'installation, pour un rpm, vous obtenez l'accès à l' .le fichier de spécification et de tous les paquets de code source.Vous pouvez simplement faire
tar -xvf <rpm file>
ainsi!tar
qui utiliselibarchive
sous le capot.Debug /inspecter votre rpm je suggère l'utilisation de redline qui est un programme java
Utilisation :
Télécharger : https://github.com/craigwblake/redline/releases
7-zip comprend la plupart des types d'archives, y compris les tr /min et le cpio.
Dans NixOS, il est
rpmextract
. C'est un wrapper autour de rpm2cpio, exactement comme @Alan Evangelista voulu.https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextract
Dans OpenSuse au moins, le
unrpm
commande est livré avec lebuild
paquet.Dans un répertoire (parce que c'est une archive de la bombe):
Copiez le .tr /min fichier dans un autre dossier, puis exécutez la commande suivante
$ monfichier.rpm | cpio -idmv
La "DÉCOMPRESSION" test échoue sur CygWin, l'un des plus potentiaally des plates-formes utiles pour elle, en raison de la "grep" vérifier "xz" être sensible à la casse. Le résultat de la "COMPRESSION:" vérifier l'est:
Simplement de remplacer "grep -q "avec" grep -q -i' partout semble résoudre le problème ainsi.
J'ai fait quelques mises à jour, en particulier d'ajouter quelques commentaires et à l'aide de "cas" au lieu d'un empilement de "si" consolidés", et compris que les solutions ci-dessous