Synchronisieren Sie das System-RPMDB mit einer lokalen Kopie

Synchronisieren Sie das System-RPMDB mit einer lokalen Kopie

Auf unseren Business-Servern möchten wir aus verschiedenen Gründen RPM-Pakete verwenden, können das RPM-Paket jedoch nicht in die Systemdatenbank installieren (Berechtigungen, mehrere Instanzen usw.). Daher haben wir unsere eigene lokale RPM-Datenbank erstellt und installieren Pakete als Nicht-Root und mit dem Argument --dbpath. Derzeit kann unsere lokale Datenbank also nur 10 Pakete enthalten. Dies funktioniert gut, ermöglicht eine Nicht-Root-Installation und mehrere Instanzen desselben Pakets, da mehrere RPM-Datenbanken verwendet werden. Der Nachteil ist, dass alles mit --nodeps installiert werden muss, da unsere lokalen Datenbanken keines der auf Systemebene installierten Pakete sehen.

Um das --nodeps-Problem zu lösen, gibt es mehrere Möglichkeiten, wie ich meine lokalen Datenbanken mit der aktuellen Systemdatenbank initialisieren kann (einfach /var/lib/rpm/Packages kopieren und neu erstellen, zum Beispiel). Wenn wir dann unsere Anwendungspakete darüber installieren, sollten wir Abhängigkeiten vollständig nutzen können. Das Problem ist jedoch, wie die Systempakete nach der ersten Kopie synchron gehalten werden können. Wenn die Administratoren einen Systempatch installieren, wird nur die System-RPM-Datenbank aktualisiert. Ich suche nach einer Methode, um einen nächtlichen Batch-Job zu schreiben, der Updates vergleicht und die Datenbank-Updates nur auf unsere lokalen Kopien anwendet.

Irgendwelche Ideen, welche Befehle verwendet werden könnten, um dies zu erreichen?

Vielen Dank für jede Hilfe. Brian

Antwort1

--nodeps, verschiebbare Pakete und die manuelle Verwaltung der Berkeley-Datenbank sind allesamt mühsam. Und Sie möchten alle drei Dinge tun? Das empfehle ich nicht, denn das wäre ein Rückschritt in der Paketverwaltung um 20 Jahre.Nur sehr wenige Pakete aus Fedora oder EL sind verschiebbar, da es von yum einfach nicht verwaltet werden kann. Darüber hinaus kann es bei nodeps zu Abhängigkeiten kommen, die von yum nicht einfach behoben werden können.


Geben Sie den Benutzern einen „Host“ für jede benötigte Instanz. VMs, Container, Chroots ( yum --installroot) usw. sind möglicherweise weniger kostspielig als der zeitaufwändige Kampf mit RPM.

Automatisieren Sie die Bereitstellung. Legen Sie Verfahren fest, mit denen Benutzer Änderungen am Paketsatz vorschlagen können, die zeitnah überprüft werden. Geben Sie einigen Benutzern möglicherweise die Berechtigung, Instanzen zu testen, damit sie Dinge ausprobieren können, ohne etwas Wichtiges zu beschädigen.

Verpacken Sie alles neu, damit keine Verschiebung oder alternative rpmdb erforderlich ist. Wechseln Sie zu nicht in Konflikt stehenden Pfaden und erstellen Sie separate Pakete mit Versionsnummern im Namen. Befolgen Sie im Allgemeinen die Verpackungsrichtlinien von Fedora RPM. Anschließend können Pakete mit yum verwaltet werden.

verwandte Informationen