View a markdown version of this page

Créer 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éer 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, vous pouvez donc 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 Packages dans la documentation de 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 des liens physiques ou des liens supplémentaires entre les fichiers lorsqu'ils sont pris en charge. Par conséquent, la création de plusieurs environnements avec les mêmes packages n'utilise pas d'espace disque supplémentaire significatif. 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 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 compilation, un package est l'artefact (.condaou .tar.bz2 fichier) créé et un canal héberge les packages pour l'installation. 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 sur le conda-forge canal. 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. PourLinux, conda-forge héberge une chaîne d'outils de compilation complète, y compris 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 complète, y compris les dépendances, dans un package conda. Les packages que Deadline Cloud fournit dans le canal Deadline-Cloud pour les flottes gérées par des services utilisent cette approche de reconditionnement binaire. Cela organise les mêmes fichiers qu'une installation pour les adapter à l'environnement virtuel Conda.

Note

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

Formulez une demande

Lors du reconditionnement d'une application pour conda, deux objectifs sont poursuivis :

  • 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 comme 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 activate.d que la conda activate commande exécutera pour ajouter les répertoires binaires de l'application au PATH. ActivéWindows, lorsque les liens symboliques ne sont pas pris en charge partout où des environnements peuvent être créés, utilisez plutôt des scripts de lancement de l'application ou des scripts .d activés.

  3. Certaines applications dépendent de bibliothèques qui ne sont pas installées par défaut sur les flottes gérées par les services 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 toujours 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 contrats de copyright et de licence pour les applications que vous empaquetez. Nous vous recommandons d'utiliser un compartiment Amazon S3 privé pour votre chaîne 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.

Packager un plugin

Les plugins d'application peuvent être empaquetés dans 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 génération et d'exécution dans la recette de générationrecipe.yaml. Utilisez une contrainte de version pour que la recette de compilation ne soit installée qu'avec les packages compatibles.

  • Suivez les conventions du package d'application hôte pour enregistrer le plug-in.

Ensembles 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 des chemins. Pour plus d'informations, consultez la section Open Job Description Adaptor Runtime surGitHub. Par exemple, deadline-cloud-for-maya on GitHub inclut une interface graphique de soumission de tâches intégrée et un Maya adaptateur disponible sous forme de package sur les flottes gérées par les services. maya-openjd

Les soumissions de tâches depuis les interfaces graphiques de soumission de Deadline Cloud 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=2026.* maya-openjd=0.15.* maya-mtoa et peut contenir des entrées alternatives. Lorsque l'environnement de file d'attente configure un environnement virtuel conda pour exécuter la tâche, 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 module d'adaptateur et de plug-in spécifie les éléments avec lesquels il est compatibleMaya, notamment les versions et les autres dépendances de Python.

Pour créer vos propres packages adaptateurs à l'aide de nos exemples tels que la recette maya-openjd surGitHub, vous pouvez utiliser les packages pour Python et d'autres dépendances fournis par conda-forge. https://conda-forge.org/ Vous devrez peut-être d'abord créer les recettes deadline et openjd-adaptor-runtime pour satisfaire les dépendances.