Wie erstelle ich einen lokalen Update-Server für Anaconda Python?

5677
KronoS

Ich habe eine Reihe vernetzter Computer, die keinen Zugang zum Internet haben. Auf jedem dieser Computer muss ich die Anaconda Python-Distribution installieren. Dies wird derzeit durch manuelle Installation auf jedem Rechner über einen freigegebenen Ordner auf einem Server durchgeführt.

Die Maschinen bleiben jedoch statisch auf die installierte Version von Anaconda eingestellt und können nicht mithilfe der conda updateBefehle aktualisiert werden . Dies bedeutet auch, dass mit dem conda createBefehl keine Umgebungen erstellt werden können .

Ich möchte einen zentralen Server einrichten, auf dem wir die Anaconda Python-Versionen (z. B. Python 2.7.x und Python 3.x) manuell verwalten können. Benutzer auf den anderen Computern würden dann auf diesen Update-Server verweisen und könnten mithilfe der Befehle conda updateoder die neuen Umgebungen aktualisieren und sogar erstellen conda create.

Wie richte ich das ein?

6
Ich bin mir nicht ganz sicher, ob ich verstehe, was Sie genau tun möchten. Sie möchten also ein Paket von Paketen (z. B. ein `yum repo ') auf einem zentralen Server haben und dieses Paket von diesem Server aus aktualisieren können? Was hat das mit den Befehlen `conda update` oder` conda create` zu ​​tun? nKn vor 9 Jahren 0
@nKn Wenn ich Repository in diesem Sinne sage, meine ich ein zentrales Repository von Conda-Installationen und Python-Paketen. Dies würde es den Clients ermöglichen, "conda update" oder "conda create" durchzuführen, aber statt nach Kontinuumservern zu suchen, würde es vom lokalen Server abgerufen. KronoS vor 9 Jahren 0
Sie können repo.continuum.io (für Ihre Plattform) spiegeln, es bereitstellen und als Kanal auf den lokalen Computern hinzufügen. asmeurer vor 9 Jahren 1
Eine weitere (kostenpflichtige) Option ist [Anaconda Server] (https://www.continuum.io/content/anaconda-subscriptions). asmeurer vor 9 Jahren 0

1 Antwort auf die Frage

5
Fil

Erstellen Sie einen HTTP-Server und kopieren Sie den gesamten Inhalt von http://repo.continuum.io/pkgs/ . Zeigen Sie auf diesen neuen Server mit einer .condarc-Datei.

Wählen Sie einen Webserver aus, und legen Sie die Dateien, auf die verwiesen wird, im öffentlichen Repository (oben) mit identischer Verzeichnisstruktur ab (Sie benötigen jedoch nicht / pkgs / free / part). Verwenden Sie die Respository-Datei (z. B. http://repo.continuum.io/pkgs/free/linux-64/repodata.json ), um alle Dateien zu finden, zu erhalten und auf Ihrem internen Webserver abzulegen.

Erstellen Sie dann eine .condarc-Datei mit dieser Vorlage und geben Sie Ihren internen Webserver wie folgt an :

channels: - http://your.web.server/ 

Dies teilt der conda mit, dass sie Pakete von Ihrem lokalen Repo beziehen soll, anstatt aus dem öffentlichen Continuum-Paket.

Wenn Sie diesen Befehl ausgeführt haben, conda install anacondawird durch Ausführen des Befehls die neueste Version der Anaconda-Plattform aus Ihrem internen Repository heruntergeladen. Ich habe das obige getan und kann überprüfen, dass es nahtlos funktioniert. Ein Wort zur Vorsicht: Stellen Sie sicher, dass Sie das gesamte Repository spiegeln. Versuchen Sie nicht, die enthaltenen Pakete zu optimieren!