Wir haben ein benutzerdefiniertes Yum-Repo, in das unsere Entwickler Builds hochladen.
Das Problem ist, dass es nach einiger Zeit mit alten Versionen überfüllt ist.
Das manuelle Entfernen der alten Versionen ist ziemlich ärgerlich. Bevor wir versuchen, sie selbst zu automatisieren, frage ich mich, ob es ein Skript gibt, das alte RPMs basierend auf der Version (bevorzugt) oder dem Zeitpunkt des Uploads bereinigt.
Am besten wäre es, wenn wir angeben könnten, einfach X letzte Versionen zu speichern und alles andere zu löschen. Dann könnten wir es cronen und es einfach täglich laufen lassen.
Danke für jede Idee.
yum
repository
SyRenity
quelle
quelle
Antworten:
Der "einfache" Weg besteht darin, einfach alles in ein Verzeichnis zu kopieren und auszuführen:
... der kompliziertere Weg ist das Einrichten von Koji / etc. um deine Builds zu machen und die Repos zu erstellen.
quelle
xargs
stattdessen zusammen mit verwenden, da Sie es sonst möglicherweise bekommenrm: missing operand
(wenn keine alten RPMs zum Entfernen vorhanden sind). Also:repomanage --keep=2 --old /path/to/repo | xargs rm -f
rm $(repomanage --keep=2 --old /path/to/repo)
darin, dass die maximale Befehlslänge leicht überschritten werden kann.xargs
wird sich um eine riesige Liste von Argumenten kümmern. Siehe: offbytwo.com/2011/06/26/things-you-didnt-know-about-xargs.htmlSchauen Sie sich das Dienstprogramm "repomanage" im RPM von yum-utils an. Es macht genau das, wonach Sie suchen.
quelle
Ich würde das Versions- oder Beschriftungssystem nutzen, mit dem Sie Builds identifizieren. Sie können Pakete auch anhand des Datums anhand eines Skripts identifizieren, das auf dem Server ausgeführt wird, auf dem sich das Repository befindet.
quelle
Wenn die Uploads täglich stattfinden, können Sie die alten Dateien löschen, die älter sind als eine bestimmte Anzahl von Tagen (in Bezug auf ihre Zugriffs- / Änderungszeiten). Finde sie und lösche sie einfach. Wenn Ihre Entwickler Builds so hochladen könnten, dass sie beim Hochladen den Namen des aktuellen Monats in den Dateinamen einfügen, wäre es aus dem Dateinamen direkt sinnvoll, dass die Datei im sogenannten Monatsjahr hochgeladen wurde, und es ist sinnvoll, nur zu löschen anhand des Dateinamens. Es würde Ihrer Skriptautomatisierung leicht machen, nur das Entfernen dieser Dateien in Betracht zu ziehen oder nur die Dateien beizubehalten, die mit dem Vormonat und dem aktuellen Monat übereinstimmen. Nur ein Gedanke.
quelle