2016-09-07 4 views
0

Also würde ich ganz gerne eine ganze Repo spiegeln, aber es scheint, dass es keine so leicht (wie durch How do I use Artifactory to mirror linux distributions? belegt)Artifactory Alte Versionen

Eine Frage habe ich, sagen wir mal, dass ich einen Remote-Repo-Setup in Artefactory, und ich habe es eingestellt, nie Cache ablaufen. Was passiert, wenn ein Paket aus dem Quell-Repo gelöscht wird, aber im Cache von Artifactory? Kann ich es noch über apt/yum oder was auch immer installieren? Ein gutes Beispiel dafür sind Ubuntu-PPAs. Sie scheinen ältere Versionen zu löschen, wenn sie übergangen werden, aber ich möchte Artifactory verwenden, um bestimmte Pakete in der Version einzufrieren.

Antwort

2

Nachdem ein Artefakt im Cache gespeichert wurde (d. H. Mindestens einmal heruntergeladen wurde), sollten Sie sich im Allgemeinen keine Gedanken über den Zustand des Artefakts im Upstream-Repository machen. Aus diesem Grund zeichnet sich Artefactory in Situationen aus, in denen Sie sich auf nichts anderes verlassen können als auf Ihr eigenes Inhouse-Repository.

Aber die vollständige Antwort ist ein bisschen komplizierter als das. Artefactory verwendet etwas, was wir "ablaufende Ressourcen" nennen. Dies sind Dateien, die in regelmäßigen Abständen nach dem im Parameter "Metadata Retrieval Cache Period" des Remote-Repositorys definierten Zeitraum "ablaufen" - siehe Abschnitt Cache Settings, in dem dieser Parameter unter einigen anderen Parametern erläutert wird.

Beachten Sie, dass diese Einstellung nur die bestimmten Dateien betrifft, die Artifactory als ablaufbar erachtet. Dies sind immer Metadaten-Dateien wie zum Beispiel die "Packages" -Datei oder die "Release" -Datei eines Debian-Repositorys. Die zugrunde liegende Annahme ist, dass sich diese Dateien gelegentlich im Upstream-Repository ändern und Referenzen für neuere Versionen des fraglichen Artefakts enthalten, sodass Sie nicht für immer mit einer veralteten Kopie bleiben möchten. Andere (nicht ablaufende) Dateien bleiben im Artefakt für immer zwischengespeichert, es sei denn, Sie entfernen sie bewusst, da es sich um "Release" -Artefakte handelt und Freigabefehler unveränderlich sind.

Wenn eine .deb-Datei aus dem Upstream-Repository entfernt wurde, enthalten die Metadatendateien, die darauf verweisen (dh die "Packages" -Datei), die Verweise auf alle Versionen dieser .deb-Datei und deren Eltern die Datei "Release") wird sich entsprechend ändern, was effektiv bedeuten kann, dass Sie diese älteren Versionen nicht mit dem APT-Client herunterladen können, wenn sie ablaufen und erneut abgerufen werden. Wenn Sie Ihre Remote-Repository in einem bestimmten Zustand erhalten mögen, haben Sie zwei Möglichkeiten:

das Repository als „Offline“ 1.Setting (siehe Additional Basic Settings) - das bedeutet, Artifactory wird nicht versuchen, Artefakte aus dem Upstream zu holen Repo, und nur die zwischengespeicherten dienen.

2.Stellen Sie die "Metadata Retrieval Cache Period" auf einen höheren Wert (der Standardwert ist 10 Minuten).

HTH,

+0

Danke, das hilft, und tatsächlich antwortet direkt, was ich für vorging (das ist die Tatsache, dass, wenn ein PPA-Updates, die alte Version aus der Release-Datei entfernt). Ich habe mich gefragt, ob Artifactory vielleicht etwas Magie verwendet hat, um Releasedateien zu verschmelzen, um seine im Cache gespeicherten Pakete verfügbar zu halten, selbst wenn die Pakete upstream gegangen und durch neuere in der Release-Datei ersetzt wurden. Es hört sich so an, als würde man das Remote-Repo hinzufügen, den Cache mit wget "wärmen" und dann als offline setzen, könnte meine beste Wette sein. – Peter

Verwandte Themen