J'ai un rpm et je veux le traiter comme une archive tar. Je veux extraire le contenu dans un répertoire pour pouvoir inspecter le contenu. Je connais les commandes d'interrogation d'un package désinstallé. Je ne veux pas simplement une liste du contenu du 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 capacité de rpms à faire des modifications supplémentaires dans les sections% post, et comment les vérifier. c'est à dire
$ rpm -qp --scripts foo.rpm
Cependant, dans ce cas, cela ne me préoccupe pas.
linux
package
rpm
system-administration
Jeff Sheffield
la source
la source
Pour référence: les arguments cpio sont
J'ai trouvé la réponse ici: la réponse de Lontar
la source
Pour ceux qui n'ont pas rpm2cpio, voici l'ancien script rpm2cpio.sh qui extrait la charge utile d'un package * .rpm.
Republié pour la postérité… et la prochaine génération.
Appelez comme ceci: ./rpm2cpio.sh .rpm | cpio -dimv
la source
Parfois, vous pouvez rencontrer un problème avec l'archive RPM intermédiaire:
Cela signifie qu'il pourrait être emballé, ces jours-ci, il s'agit de la compression LZMA2 comme d'habitude, par
xz
:sinon vous pouvez essayer:
la source
rpm2cpio <file>.rpm | bsdtar -xf -
(pas de cpio) pour que ça marche.gunzip
placexz
oulzma
qui a bien fonctionné.La plupart des distributions ont installé le file-roller de l' application GUI qui décompresse tar, zip, rpm et bien d'autres.
Cela extraira le contenu du répertoire actuel.
la source
7-zip comprend la plupart des types d'archives, y compris rpm et le cpio inclus.
la source
Vous pouvez tout simplement faire
tar -xvf <rpm file>
aussi bien!la source
tar
qui utiliselibarchive
sous le capot.bsdtar
. Homebrew sur Mac y est liétar
par défaut, mais sur d'autres OStar
signifie GNU tar.Le puissant gestionnaire de fichiers texte mc (Midnight Commander, rappelant vaguement à Norton Commander l'ancien temps DOS) a la capacité intégrée d'inspecter et de décompresser les fichiers .rpm et .rpms, il suffit d '«ouvrir» le fichier .rpm (s) dans mc et sélectionnez
CONTENTS.cpio
: pour un rpm vous avez accès à l'arborescence d'installation, pour un rpms vous avez accès au fichier .spec et à tous les paquets sources.la source
Pour déboguer / inspecter votre rpm, je suggère d'utiliser redline qui est un programme java
Utilisation:
Téléchargement: https://github.com/craigwblake/redline/releases
la source
Dans NixOS, il y a
rpmextract
. C'est un wrapper autour de rpm2cpio, exactement comme le souhaitait @Alan Evangelista. https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextractla source
Dans OpenSuse au moins, la
unrpm
commande est fournie avec lebuild
package.Dans un répertoire approprié (car il s'agit d'une bombe d'archive):
la source
Copiez le fichier .rpm dans un dossier séparé, puis exécutez la commande suivante $ yourfile.rpm | cpio -idmv
la source
Le test "DECOMPRESSION" échoue sur CygWin, une des plates-formes les plus puissamment utiles, car le contrôle "grep" pour "xz" est sensible à la casse. Le résultat du contrôle "COMPRESSION:" est:
Le simple remplacement de «grep -q» par «grep -q -i» partout semble bien résoudre le problème.
J'ai fait quelques mises à jour, en particulier en ajoutant des commentaires et en utilisant "case" au lieu d'instructions "if" empilées, et j'ai inclus ce correctif ci-dessous
la source
7-Zip est capable d'extraire le contenu. Cela fonctionne de la même manière qu'un fichier tar.gz fonctionne. Un fichier compressé dans un fichier compressé.
Sur Windows 7 Pro avec 7-Zip installé:
Cliquez avec le bouton droit sur le fichier rpm. Passez la souris sur 7-Zip dans le menu contextuel. Sélectionnez extraire "nom de fichier".
Entrez dans le dossier des noms de fichiers.
Cliquez avec le bouton droit sur le fichier cpio. Passez la souris sur 7-Zip dans le menu contextuel. Sélectionnez extraire "nom de fichier".
Vous avez terminé. Le dossier avec "filename" contient le contenu extrait pour l'inspection.
Je sais que vous les gars de Linux méprisez que les choses soient faciles, mais à long terme, si vous devez passer du temps à chercher une solution à un problème simple comme celui-ci; cette inefficacité vous coûte de l'argent.
Étant donné que vous, Linux, vous méprisez la simplicité efficace, je doute fortement que la version Linux de 7-Zip fasse exactement la même chose de la même manière.
Pourquoi rendre les choses faciles quand on peut rendre carrément stupide difficile et prétendre être un génie en même temps?
Juste pour être clair; Je ne suis pas fan de Windows. Je cherche en fait à passer à Linux. Je n'ai tout simplement pas pu résister à l'opportunité de frotter ce que les développeurs Windows considéreraient comme du bon sens, les meilleures pratiques de développement dans vos visages.
Sois juste content que ce soit moi qui poste ça et que tu n'as pas Mark Harmon debout à côté de toi parce que; L'agent spécial Leroy Jethro Gibbs vous aurait donné une gifle pour ne pas avoir utilisé votre tête.
Je ne sais pas de quelle règle Gibbs il s'agit, mais la règle est la suivante: ne vous rendez pas les choses plus difficiles qu'elles ne devraient l'être.
Maintenant, nous voyons qui doit prendre des vacances. Prends soin de toi!
la source