Ich habe eine Drehzahl und möchte sie wie einen Tarball behandeln. Ich möchte den Inhalt in ein Verzeichnis extrahieren, damit ich den Inhalt überprüfen kann. Ich bin mit den Abfragebefehlen eines deinstallierten Pakets vertraut. Ich möchte nicht einfach eine Liste des Inhalts der Drehzahl. dh
$ rpm -qpl foo.rpm
Ich möchte den Inhalt mehrerer Dateien überprüfen, die in der Drehzahl enthalten sind. Ich möchte die Drehzahl nicht installieren. Ich bin mir auch der Fähigkeit von rpms bewusst, zusätzliche Änderungen in den% post-Abschnitten vorzunehmen, und wie man diese überprüft. dh
$ rpm -qp --scripts foo.rpm
In diesem Fall geht mich das jedoch nichts an.
linux
package
rpm
system-administration
Jeff Sheffield
quelle
quelle
Als Referenz: Die cpio-Argumente sind
Ich fand die Antwort hier: Lontars Antwort
quelle
Für diejenigen, die nicht über rpm2cpio verfügen, ist hier das alte Skript rpm2cpio.sh, das die Nutzdaten aus einem * .rpm-Paket extrahiert.
Reposted für die Nachwelt… und die nächste Generation.
Rufen Sie wie folgt auf: ./rpm2cpio.sh .rpm | cpio -dimv
quelle
Manchmal kann ein Problem mit dem RPM-Zwischenarchiv auftreten:
Das heißt, es könnte verpackt werden, heutzutage handelt es sich wie gewohnt um LZMA2-Komprimierung durch
xz
:Andernfalls könnten Sie versuchen:
quelle
rpm2cpio <file>.rpm | bsdtar -xf -
(kein cpio), damit es funktionierte.gunzip
anstelle vonxz
oder verwendet,lzma
was gut funktioniert hat.Die meisten Distributionen haben den File-Roller der GUI-App installiert, der Teer, Zip, RPM und vieles mehr entpackt.
Dadurch wird der Inhalt im aktuellen Verzeichnis extrahiert.
quelle
7-zip versteht die meisten Arten von Archiven, einschließlich RPM und dem enthaltenen CPIO.
quelle
Sie können es einfach auch tun
tar -xvf <rpm file>
!quelle
tar
verwendet, dielibarchive
unter der Haube verwendet wird.bsdtar
. Homebrew auf Mac verbindettar
sich standardmäßig damit, aber auf anderen Betriebssystementar
bedeutet GNU tar.Der leistungsstarke textbasierte Dateimanager mc (Midnight Commander, der den Norton Commander vage an alte DOS-Zeiten erinnert) verfügt über die integrierte Funktion zum Überprüfen und Entpacken von RPM- und RPM-Dateien. Öffnen Sie einfach die RPM-Datei in mc und wählen Sie
CONTENTS.cpio
: Für eine Drehzahl erhalten Sie Zugriff auf den Installationsbaum, für eine Drehzahl erhalten Sie Zugriff auf die .spec-Datei und alle Quellpakete.quelle
Um Ihre Drehzahl zu debuggen / zu überprüfen, empfehle ich die Verwendung von redline , einem Java-Programm
Verwendung :
Download: https://github.com/craigwblake/redline/releases
quelle
In NixOS gibt es
rpmextract
. Es ist ein Wrapper um rpm2cpio, genau wie @Alan Evangelista es wollte. https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextractquelle
Zumindest in OpenSuse wird der
unrpm
Befehl mit dembuild
Paket geliefert.In einem geeigneten Verzeichnis (da dies eine Archivbombe ist):
quelle
Kopieren Sie die RPM-Datei in einen separaten Ordner und führen Sie den folgenden Befehl $ yourfile.rpm | aus cpio -idmv
quelle
Der "DECOMPRESSION" -Test schlägt auf CygWin, einer der potenziell nützlichsten Plattformen, fehl, da bei der "grep" -Prüfung auf "xz" zwischen Groß- und Kleinschreibung unterschieden wird. Das Ergebnis der Prüfung "COMPRESSION:" lautet:
Das einfache Ersetzen von 'grep -q' durch 'grep -q -i' scheint das Problem gut zu lösen.
Ich habe einige Aktualisierungen vorgenommen, insbesondere einige Kommentare hinzugefügt und "case" anstelle von gestapelten "if" -Anweisungen verwendet, und diesen Fix unten eingefügt
quelle
7-Zip kann den Inhalt extrahieren. Es funktioniert genauso wie eine tar.gz-Datei. Eine komprimierte Datei in einer komprimierten Datei.
Unter Windows 7 Pro mit installiertem 7-Zip:
Klicken Sie mit der rechten Maustaste auf die RPM-Datei. Fahren Sie mit der Maus über 7-Zip im Kontextmenü. Wählen Sie Auszug zu "Dateiname".
Geben Sie in den Dateinamenordner ein.
Klicken Sie mit der rechten Maustaste auf die CPIO-Datei. Fahren Sie mit der Maus über 7-Zip im Kontextmenü. Wählen Sie Auszug zu "Dateiname".
Du bist fertig. Der Ordner mit "Dateiname" enthält den extrahierten Inhalt zur Überprüfung.
Ich weiß, dass Sie Linux-Leute es verachten, Dinge einfach zu machen, aber auf lange Sicht, wenn Sie Zeit damit verbringen müssen, eine Lösung für ein einfaches Problem wie dieses zu finden; Diese Ineffizienz kostet Sie Geld.
Angesichts der Tatsache, dass Sie Linux-Leute effiziente Einfachheit verachten, bezweifle ich sehr, dass die Linux-Version von 7-Zip genau das Gleiche tun wird.
Warum es einfach machen, wenn man es geradezu dumm machen und gleichzeitig behaupten kann, ein Genie zu sein?
Nur um das klar zu stellen; Ich bin kein Windows-Fan. Ich bin gerade dabei, auf Linux umzusteigen. Ich konnte der Gelegenheit einfach nicht widerstehen, das, was Windows-Entwickler als vernünftige, bewährte Entwicklerpraktiken ansehen würden, in Ihre Gesichter zu reiben.
Sei einfach froh, dass ich das poste und du hast Mark Harmon nicht neben dir. Spezialagent Leroy Jethro Gibbs hätte Ihnen einen Schlag auf den Kopf gegeben, weil Sie Ihren Kopf nicht benutzt haben.
Ich weiß nicht, um welche Gibbs-Regel es sich handelt, aber die Regel lautet: Machen Sie sich die Dinge nicht schwerer, als sie sein müssen.
Jetzt können wir sehen, wer Urlaub machen muss. Pass auf!
quelle