mambaorg.micromamba

Ansible role: mambaorg.micromamba

Instalar micromamba y, opcionalmente, crear un entorno base de conda.

Enlaces

Motivación

Conda es una herramienta de gestión de dependencias muy potente centrada en Python. Sin embargo, para entornos con muchas dependencias, su solucionador de dependencias lento puede tardar horas en completarse.

El nuevo proyecto Mamba aborda este problema al reimplementar el solucionador de dependencias en C++, siendo muy rápido. Aparte del solucionador, mamba delega la mayoría de las tareas a la herramienta conda, que es de confianza.

Micromamba es un gestor de paquetes muy experimental y completamente en C++ para entornos de conda. Debido a que no tiene dependencias de Python, puede crear entornos para cualquier versión de Python a partir de un único binario micromamba. Si ninguno de tus paquetes de conda tiene una dependencia de Python, Micromamba incluso puede crear un entorno de conda sin Python.

Micromamba elimina la necesidad de "distribuciones" como Anaconda o Miniconda. Puedes configurar tu entorno deseado directamente.

Variables del rol

arch: linux-64
version: latest

Para conocer las últimas arquitecturas y números de versión, revisa distributions[#].basename, que tiene el formato {arch}/micromamba-{version}.tar.bz2. Los valores actuales posibles para arch son linux-64, linux-aarch64, osx-64, osx-arm64, win-64. El formato de version es latest o algo como 0.15.2-0, donde -0 indica el número de compilación.


dest: /usr/local/bin/micromamba

Ubicación del ejecutable micromamba.


root_prefix: /opt/conda

Cuando se define el prefijo raíz y no existe, se creará un nuevo prefijo raíz en esta ubicación.


packages:
  - mamba
  - python=3.9

Una lista de paquetes iniciales de conda que se instalarán al crear un nuevo prefijo raíz.


file: /tmp/environment.yaml

Como alternativa a la lista de packages, se puede proporcionar un archivo de entorno o un archivo de bloqueo.


root_prefix_condarc:
  channels:
    - conda-forge

Contenido para escribir en .condarc en el nuevo prefijo raíz. Si no se define, no se crea ningún archivo .condarc.

Ejemplos de Playbooks

- hosts: servers
  become: yes
  roles:
      - mambaorg.micromamba

Esto descarga el ejecutable micromamba en la ubicación predeterminada de /usr/local/bin/micromamba.


- hosts: servers
  become: yes
  roles:
      - mambaorg.micromamba
  vars:
    dest: /tmp/micromamba
    root_prefix: /opt/conda
    packages:
      - mamba
      - python=3.9

Esto descarga micromamba en /tmp/micromamba y crea un nuevo prefijo raíz en /opt/conda/ con Python 3.9 y Mamba.


- hosts: servers
  become: yes
  become_user: condauser
  roles:
      - mambaorg.micromamba
  vars:
    root_prefix: ~/micromamba
    root_prefix_condarc:
      channels:
        - conda-forge
    packages:
      - s3fs-fuse

Esto crea un nuevo prefijo raíz en /home/conda-user/micromamba y crea un entorno de conda sin Python. También coloca un archivo .condarc en el prefijo raíz para configurar los paquetes que se instalarán por defecto desde el canal conda-forge.

Uso posterior

Para ejecutar cualquier comando desde un entorno de conda, primero debe ser activado. La activación implica modificar el PATH y otras variables de entorno en el shell activo (generalmente Bash). Esto se puede lograr de varias maneras.

Directamente

eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda

El primer comando ejecuta una secuencia de comandos que define una función en Bash, también llamada micromamba. (De lo contrario, el ejecutable micromamba se ejecutaría como un subproceso que no puede modificar el entorno del shell). El segundo comando ejecuta la función de Bash recién definida para activar el entorno ubicado en /opt/conda.

Con un script de inicialización

micromamba shell init --shell=bash --prefix=/opt/conda

Esto modifica ~/.bashrc para que en sesiones interactivas futuras de Bash, el comando micromamba activate sea suficiente para activar el entorno. (El comando micromamba activate se puede agregar a ~/.bashrc si se desea).

Con mamba o conda

Dado que micromamba es experimental, en lugar de depender de las posibilidades anteriores que usan micromamba para activar, se aconseja instalar mamba en el entorno y ejecutar

/opt/conda/bin/conda init bash
/opt/conda/bin/mamba init bash

Estos comandos modifican ~/.bashrc para que el entorno se active completamente en sesiones interactivas futuras de Bash.

Solución de problemas

Si Bash no se ejecuta de forma interactiva, entonces .bashrc no se cargará, por lo que ejecutar micromamba activate fallará. En este caso, puedes usar ya sea el procedimiento de activación directa o forzar un shell interactivo pasando el flag -i al comando bash.

Licencia

MIT

Información del autor

Actualmente mantenido por Ben Mares (@maresb) y Andreas Trawoeger (@atrawog). Versión inicial por @maresb. ¡Las contribuciones son bienvenidas!

Acerca del proyecto

Install micromamba, and optionally create a base conda environment.

Instalar
ansible-galaxy install mambaorg.micromamba
Licencia
mit
Descargas
606
Propietario
Mathematician, Freelancer