So extrahieren Sie RPM aus der RPM-Datenbank unter Red Hat Enterprise Linux

8

Gibt es eine Möglichkeit, ein installiertes RPM aus einer RPM-Datenbank unter Red Hat Enterprise Linux zu extrahieren, um die Originaldatei zu reproduzieren .rpm?

John in MD
quelle
Warum wurde dieser Titel geändert? Red Hat ist der Name der Software nicht RedcHat
Ramhound

Antworten:

7

Wenn Sie eine Kopie des aktuell installierten Pakets speichern möchten, bevor Sie es aktualisieren oder entfernen, verwenden Sie rpm --repackage- es speichert die RPMs in / var / tmp oder / var / spool / repackage oder anderswo, abhängig von Ihrer Konfiguration.

Ansonsten gibt es welche rpmrebuild, die genau das tun, wonach Sie fragen.

Achtung: Mit keinem dieser Tools erhalten Sie genau das gleiche, *.rpmmit dem Sie begonnen haben. Alle Änderungen an den installierten Dateien, die zum Paket gehören, werden in den generierten RPMs gespeichert.

kurzlebig
quelle
1
Ich glaube , es Notiz sich lohnt , das rpm --repackagewird Re-package the files before erasing rpm.org/max-rpm-snapshot/rpm.8.html ich diesen Befehl lief fast blind, aber zuerst an den verlinkten Dokumente gesucht.
Kevin Meredith
rpm --repackagescheint auf neueren (z. B. RHEL 7) Systemen nicht verfügbar zu sein. rpmrebuildist im EPEL für RHEL 7 verfügbar und hat den Trick für mich gemacht.
Jayhendren
1

Das Erstellen der ursprünglichen RPM-Datei ist nicht möglich, sie wurde extrahiert und möglicherweise verworfen. Die RPM-Datenbank enthält Informationen zu den installierten Dateien sowie deren Prüfsummen, Berechtigungen und den Postinst-Skripten:

# verify package contents
rpm -q packagename --verify
# read the scripts that run on installation and removal
rpm -q packagename --scripts

wird Ihnen einige Informationen geben.

Wenn Sie eine Drehzahl aus dem Repository erhalten möchten, empfehle ich die Verwendung von yumdownloader aus dem Paket yum-utils.

yum install yum-utils
yumdownloader packagename

Dadurch wird die neueste Drehzahl heruntergeladen, nicht die derzeit installierte.


quelle