View a markdown version of this page

Création d'un package conda pour une application ou un plugin - Deadline Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'un package conda pour une application ou un plugin

Un package conda est une archive compressée de logiciels écrits dans n'importe quelle langue. Conda prend en charge une variété de combinaisons de systèmes d'exploitation et d'architectures, de sorte que vous pouvez empaqueter des applications complètes telles que BlenderMaya, et Nuke parallèlement à des bibliothèques pour Python et d'autres langages. Pour plus d'informations sur les packages conda, consultez la section Packages dans la documentation conda.

Pour utiliser un package conda, vous devez l'installer dans un environnement virtuel. Un environnement virtuel conda possède un répertoire de préfixes dans lequel les packages sont installés. L'installation d'un package utilise la création de liens physiques ou de reconnexion de fichiers lorsqu'elle est prise en charge. La création de plusieurs environnements avec les mêmes packages n'utilise donc pas beaucoup d'espace disque supplémentaire. Pour utiliser un environnement virtuel, vous devez l'activer pour définir des variables d'environnement. L'activation exécute les scripts fournis par les packages, donnant à chaque package la possibilité de modifier le PATH ou d'autres variables d'environnement. Les packages Conda contiennent généralement des applications ou des bibliothèques, mais leur activation flexible signifie qu'ils peuvent également pointer vers des applications installées sur un système de fichiers partagé.

La création d'un package personnalisé comporte trois étapes : une recette contient les instructions de construction, un package est l'artefact (.condaou .tar.bz2 fichier) généré et un canal héberge les packages à installer. La rattler-build publish commande gère les trois étapes : elle peut intégrer une recette dans un package et la publier sur une chaîne, ou elle peut utiliser un artefact de package directement pour la publier.

La communauté conda-forge gère des recettes de packages pour un large éventail de logiciels open source et héberge des artefacts de packages dans la conda-forge chaîne. Vous pouvez configurer votre file d'attente pour l'inclure conda-forge en tant que source de package, puis créer des packages personnalisés qui dépendent de l'exécution des packages conda-forge. En effetLinux, conda-forge héberge une chaîne d'outils de compilation complète incluant le support CUDA, avec des options de compilation et de liaison cohérentes sélectionnées. Vous pouvez utiliser les packages conda-forge comme dépendances dans vos propres recettes ou les installer avec vos packages personnalisés dans le même environnement.

Vous pouvez combiner une application entière, y compris les dépendances, dans un package conda. Les packages fournis par Deadline Cloud dans le canal Deadline-Cloud pour les flottes gérées par des services utilisent cette approche de reconditionnement binaire. Cela permet d'organiser les mêmes fichiers qu'une installation pour les adapter à l'environnement virtuel de Conda.

Note

Les applications volumineuses peuvent nécessiter des dizaines de Go d'espace disque libre pour l'archive source, les fichiers extraits et la sortie de compilation. Assurez-vous d'utiliser un disque avec suffisamment d'espace disponible pour la sortie de génération du package.

Package d'une application

Lorsque vous reconditionnez une application pour conda, vous avez deux objectifs :

  • La plupart des fichiers de l'application doivent être séparés de la structure principale de l'environnement virtuel Conda. Les environnements peuvent ensuite mélanger l'application avec des packages provenant d'autres sources telles que conda-forge.

  • Lorsqu'un environnement virtuel conda est activé, l'application doit être disponible à partir de la variable d'environnement PATH.

Pour reconditionner une application pour conda
  1. Écrivez des recettes de construction conda qui installent l'application dans un sous-répertoire tel que. $CONDA_PREFIX/opt/<application-name> Cela le sépare des répertoires de préfixes standard tels que bin etlib.

  2. Ajoutez des liens symboliques ou lancez des scripts $CONDA_PREFIX/bin pour exécuter les fichiers binaires de l'application.

    Vous pouvez également créer des scripts .d activés que la conda activate commande exécutera pour ajouter les répertoires binaires de l'application au PATH. Si Windows les liens symboliques ne sont pas pris en charge partout où des environnements peuvent être créés, utilisez plutôt des scripts de lancement ou d'activation d'applications.

  3. Certaines applications dépendent de bibliothèques qui ne sont pas installées par défaut sur les flottes gérées par le service Deadline Cloud. Par exemple, le système de fenêtres X11 n'est généralement pas nécessaire pour les tâches non interactives, mais certaines applications nécessitent tout de même qu'il s'exécute sans interface graphique. Vous devez fournir ces dépendances dans le package que vous créez.

  4. Si l'application prend en charge les plug-ins, indiquez une convention claire que les packages de plugins doivent suivre pour s'intégrer à l'application dans un environnement virtuel. Par exemple, l'exemple de recette Maya 2026 documente cette convention pour les Maya plugins.

  5. Assurez-vous de respecter les droits d'auteur et les contrats de licence pour les applications que vous créez. Nous vous recommandons d'utiliser un compartiment Amazon S3 privé pour votre canal Conda afin de contrôler la distribution et de limiter l'accès aux packages à votre ferme.

Des exemples de recettes pour les packages de la deadline-cloud chaîne sont disponibles dans le référentiel d'exemples de Deadline Cloud surGitHub.

Package d'un plugin

Les plugins d'application peuvent être empaquetés sous la forme de leurs propres packages conda. Lorsque vous créez un package de plug-in, suivez les instructions suivantes :

  • Incluez le package de l'application hôte en tant que dépendance de compilation et d'exécution dans la recette de générationrecipe.yaml. Utilisez une contrainte de version afin que la recette de construction ne soit installée qu'avec des packages compatibles.

  • Respectez les conventions du package de l'application hôte pour enregistrer le plug-in.

Packs d'adaptateurs

Certaines intégrations d'applications Deadline Cloud utilisent un adaptateur qui étend l'interface de l'application afin de simplifier la rédaction de modèles de tâches. Un adaptateur est une interface de ligne de commande qui permet d'exécuter un démon en arrière-plan, de signaler l'état et d'appliquer le mappage de chemins. Pour plus d'informations, reportez-vous à la section Open Job Description Adaptor Runtime surGitHub. Par exemple, deadline-cloud-for-mayaon GitHub inclut une interface graphique intégrée de soumission de tâches et un Maya adaptateur disponible sous forme de maya-openjd package sur les flottes gérées par des services.

Les soumissions de tâches depuis Deadline Cloud Submitter GUIs incluent une valeur de CondaPackages paramètre qui spécifie les packages conda à inclure dans un environnement virtuel pour exécuter la tâche. La valeur du CondaPackages paramètre pour ressemble Maya généralement à des entrées alternatives pour les packages de plugins maya=2025.* maya-openjd=0.15.* maya-mtoa et peut contenir ces entrées. Lorsque l'environnement de file d'attente configure un environnement virtuel conda pour exécuter le travail, il résout ces noms de packages et ces contraintes de version pour qu'ils soient compatibles et ajoute tous les packages de dépendance dont ils ont besoin pour s'exécuter. Chaque package d'adaptateur et de plugin indique ce avec quoi il est compatible, y compris les versions de PythonMaya, les versions de Python et les autres dépendances.

Pour créer vos propres packages adaptateurs à l'aide de nos exemples tels que la recette maya-openjd onGitHub, vous pouvez utiliser les packages pour Python et d'autres dépendances fournis par conda-forge. Vous devrez peut-être d'abord créer la date limite et les openjd-adaptor-runtimerecettes pour satisfaire les dépendances.