Wie wird das RPM-Paket installiert?

-1

Dies ist wie eine "Henne und Ei" -Frage. RPM-Paketmanager (ähnlich wie andere Paketverwaltungsprogramme) werden in ein RPM-Paket selbst gepackt und installiert. Aber wie wird RPM zuerst installiert? Wenn RPM (erzwungen) deinstalliert wird, wie kann es dann wieder installiert werden?

drgnfr
quelle
Dieselbe Frage könnte für jeden Paketmanager gestellt werden. Wenn Sie die Frage zum Hühnerei-Problem von Paketmanagern im Allgemeinen stellen, wird es für Nicht-Red Hat-Benutzer einfacher, die Frage zu beantworten. Wenn Red Hat etwas Besonderes hat, kann es auch hilfreich sein, wenn Sie die Relevanz erläutern. Haben Sie beispielsweise etwas im Sinn, was Sie speziell mit RPM vorhaben?
Cryptarch

Antworten:

1

Das Installationsprogramm ("anaconda" auf CentOS) bootet die RPM-Umgebung, indem es die Basisdateien ausschreibt, und führt dann die ersten Installationen in einer chrootUmgebung durch. Das rpmProgramm des Installationsprogramms befindet sich außerhalb der Installation und ist daher nicht von diesen Dateien abhängig.

Wenn Sie eine Neuinstallation durchführen müssen, rpmempfehle ich, das Installationsprogramm im Rettungsmodus zu starten und den rpmBefehl aus dieser Umgebung mit der --rootOption zu verwenden, auf das Betriebssystem zu verweisen, das Sie reparieren möchten.

Stephen Harris
quelle
0

Sie können den RPM-Inhalt "immer" extrahieren, z. B. mithilfe von rpm2cpiound die ausführbaren Dateien / Skripts dort ablegen, wo sie zum Installieren von Paketen verwendet werden können. Nennen wir das einen Bootstrap- Prozess ...

Thomas Dickey
quelle
rpm2cpio extrahiert den Inhalt des rpm-Pakets. Die rpm-Scriptlets werden nicht ausgeführt. Es ist also nicht gleichbedeutend mit rpm -i . Dies beantwortet jedoch nicht meine Frage: Wie wird RPM zuerst installiert?
drgnfr
Dazu müssen Sie das Installationsprogramm lesen, das auf verschiedenen ISO-Medien enthalten ist. Sie backen das resultierende Dateisystem nicht im Voraus. Es wird durch das Ausführen von Programmen erstellt.
Thomas Dickey