View a markdown version of this page

Erstellen Sie ein Conda-Paket für eine Anwendung oder ein Plugin - Deadline Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie ein Conda-Paket für eine Anwendung oder ein Plugin

Ein Conda-Paket ist ein komprimiertes Archiv mit Software, die in einer beliebigen Sprache geschrieben wurde. Conda unterstützt eine Vielzahl von Betriebssystem- und Architekturkombinationen, sodass Sie vollständige Anwendungen wie BlenderMaya, und Nuke zusammen mit Bibliotheken für Python und andere Sprachen paketieren können. Weitere Informationen zu Conda-Paketen finden Sie unter Pakete in der Conda-Dokumentation.

Um ein Conda-Paket zu verwenden, installieren Sie es in einer virtuellen Umgebung. Eine virtuelle Conda-Umgebung hat ein Präfixverzeichnis, in dem Pakete installiert werden. Bei der Installation eines Pakets werden Dateien fest verknüpft oder neu verlinkt, sofern dies unterstützt wird. Das Erstellen mehrerer Umgebungen mit denselben Paketen verbraucht also keinen nennenswerten zusätzlichen Festplattenspeicher. Um eine virtuelle Umgebung zu verwenden, aktivieren Sie sie, um Umgebungsvariablen festzulegen. Bei der Aktivierung werden von Paketen bereitgestellte Skripts ausgeführt, sodass jedes Paket die Möglichkeit hat, PATH oder andere Umgebungsvariablen zu ändern. Conda-Pakete enthalten normalerweise Anwendungen oder Bibliotheken, aber aufgrund der flexiblen Aktivierung können sie auch auf Anwendungen verweisen, die auf einem gemeinsam genutzten Dateisystem installiert sind.

Die Erstellung eines benutzerdefinierten Pakets umfasst drei Phasen: Ein Rezept enthält die Bauanweisungen, ein Paket ist das gebaute Artefakt (.condaoder die erstellte .tar.bz2 Datei) und ein Channel hostet die Pakete für die Installation. Der rattler-build publish Befehl behandelt alle drei Schritte: Er kann ein Rezept in ein Paket einbauen und in einem Channel veröffentlichen, oder es kann direkt ein Paket-Artefakt verwenden, um es zu veröffentlichen.

Die Conda-Forge-Community verwaltet Paketrezepte für eine breite Palette von Open-Source-Software und hostet Paket-Artefakte im Channel. conda-forge Sie können Ihre Warteschlange so konfigurieren, dass sie sie conda-forge als Paketquelle einschließt, und dann benutzerdefinierte Pakete erstellen, deren Ausführung von Conda-Forge-Paketen abhängt. Denn Linux Conda-Forge hostet eine vollständige Compiler-Toolchain einschließlich CUDA-Unterstützung, wobei konsistente Kompilierungs- und Linkoptionen ausgewählt sind. Sie können Conda-Forge-Pakete als Abhängigkeiten in Ihren eigenen Rezepten verwenden oder sie zusammen mit Ihren benutzerdefinierten Paketen in derselben Umgebung installieren.

Sie können eine gesamte Anwendung, einschließlich Abhängigkeiten, zu einem Conda-Paket kombinieren. Die Pakete, die Deadline Cloud im Deadline-Cloud-Channel für serviceverwaltete Flotten bereitstellt, verwenden diesen binären Repacking-Ansatz. Dadurch werden dieselben Dateien wie bei einer Installation so organisiert, dass sie zur virtuellen Conda-Umgebung passen.

Anmerkung

Große Anwendungen können Dutzende GB freien Festplattenspeicher für das Quellarchiv, die entpackten Dateien und die Build-Ausgabe benötigen. Stellen Sie sicher, dass Sie eine Festplatte mit ausreichend verfügbarem Speicherplatz für die Paketbauausgabe verwenden.

Eine Anwendung verpacken

Beim Umpacken einer Anwendung für Conda gibt es zwei Ziele:

  • Die meisten Dateien für die Anwendung sollten von der primären Struktur der virtuellen Conda-Umgebung getrennt sein. Umgebungen können die Anwendung dann mit Paketen aus anderen Quellen wie Conda-Forge mischen.

  • Wenn eine virtuelle Conda-Umgebung aktiviert ist, sollte die Anwendung über die Umgebungsvariable PATH verfügbar sein.

Um eine Anwendung für Conda neu zu verpacken
  1. Schreiben Sie Conda-Build-Rezepte, die die Anwendung in ein Unterverzeichnis wie installieren. $CONDA_PREFIX/opt/<application-name> Dies unterscheidet es von den Standardpräfixverzeichnissen wie bin und. lib

  2. Fügen Sie Symlinks oder Startskripten hinzu, $CONDA_PREFIX/bin um die Anwendungsbinärdateien auszuführen.

    Alternativ können Sie activate.d-Skripten erstellen, die der conda activate Befehl ausführt, um die Binärverzeichnisse der Anwendung zum PATH hinzuzufügen. Wenn Symlinks nicht überall unterstützt werdenWindows, wo Umgebungen erstellt werden können, verwenden Sie stattdessen die Skripten application launch oder activate.d.

  3. Manche Anwendungen sind auf Bibliotheken angewiesen, die nicht standardmäßig auf den vom Service verwalteten Flotten von Deadline Cloud installiert sind. Beispielsweise ist das X11-Fenstersystem für nicht interaktive Jobs normalerweise nicht erforderlich, aber für einige Anwendungen muss es immer noch ohne grafische Oberfläche ausgeführt werden. Sie müssen diese Abhängigkeiten in dem Paket angeben, das Sie erstellen.

  4. Wenn die Anwendung Plugins unterstützt, geben Sie eine klare Konvention an, nach der Plugin-Pakete bei der Integration in die Anwendung in einer virtuellen Umgebung funktionieren müssen. Zum Beispiel dokumentiert das Maya2026-Beispielrezept diese Konvention für Maya Plugins.

  5. Stellen Sie sicher, dass Sie die Urheber- und Lizenzvereinbarungen für die von Ihnen verpackten Anwendungen einhalten. Wir empfehlen, einen privaten Amazon S3 S3-Bucket für Ihren Conda-Kanal zu verwenden, um die Verteilung zu kontrollieren und den Paketzugriff auf Ihre Farm einzuschränken.

Beispielrezepte für die Pakete im deadline-cloud Channel sind im Deadline Cloud-Beispiel-Repository unter GitHub verfügbar.

Ein Plugin verpacken

Anwendungs-Plugins können als eigene Conda-Pakete verpackt werden. Beachten Sie beim Erstellen eines Plugin-Pakets die folgenden Richtlinien:

  • Nehmen Sie das Host-Anwendungspaket sowohl als Build- als auch als Run-Abhängigkeit in das Build-Rezept aufrecipe.yaml. Verwenden Sie eine Versionsbeschränkung, sodass das Build-Rezept nur mit kompatiblen Paketen installiert wird.

  • Halten Sie sich bei der Registrierung des Plug-ins an die Konventionen für Host-Anwendungspakete.

Adapter-Pakete

Einige Anwendungsintegrationen von Deadline Cloud verwenden einen Adapter, der die Anwendungsschnittstelle erweitert, um das Schreiben von Jobvorlagen zu vereinfachen. Ein Adapter ist eine Befehlszeilenschnittstelle, die die Ausführung eines Hintergrund-Daemons, die Statusberichterstattung und die Pfadzuweisung unterstützt. Weitere Informationen finden Sie unter Open Job Description Adaptor Runtime aufGitHub. Zum Beispiel GitHub enthält deadline-cloud-for-mayaon eine integrierte Benutzeroberfläche für die Auftragsübermittlung und einen Maya Adapter, der als maya-openjd Paket für vom Service verwaltete Flotten verfügbar ist.

Auftragsübermittlungen von Deadline Cloud Submitter GUIs enthalten einen CondaPackages Parameterwert, der die Conda-Pakete angibt, die in einer virtuellen Umgebung für die Ausführung des Jobs enthalten sein sollen. Der CondaPackages Parameterwert für sieht Maya normalerweise so aus maya=2025.* maya-openjd=0.15.* maya-mtoa und kann alternative Einträge für Plugin-Pakete enthalten. Wenn die Warteschlangenumgebung eine virtuelle Conda-Umgebung für die Ausführung des Jobs einrichtet, löst sie diese Paketnamen und Versionseinschränkungen auf, sodass sie kompatibel sind, und fügt alle Abhängigkeitspakete hinzu, die sie zur Ausführung benötigen. Jedes Adapter- und Plugin-Paket gibt an, womit es kompatibel ist, einschließlich welcher Versionen vonMaya, welchen Versionen von Python und anderer Abhängigkeiten.

Um Ihre eigenen Adapterpakete mit unseren Beispielen wie dem Maya-Openjd-Rezept auf zu erstellenGitHub, können Sie auf den Paketen für Python und anderen Abhängigkeiten aufbauen, die von conda-forge bereitgestellt werden. Möglicherweise müssen Sie zuerst die Frist und openjd-adaptor-runtimedie Rezepte erstellen, um Abhängigkeiten zu erfüllen.