micromamba

Ansible роль: mambaorg.micromamba

Установка micromamba и, при необходимости, создание корневой/базовой среды conda.

Ссылки

Мотивация

Conda — это очень мощный инструмент управления зависимостями, ориентированный на Python. Однако для сред с большим количеством зависимостей его медленный решатель зависимостей может занимать часы.

Новый проект Mamba решает эту проблему, переписывая решатель зависимостей на C++, и работает очень быстро. Кроме решателя, mamba делегирует большинство задач надежному инструменту conda.

Micromamba — это высокоэкспериментальный чистый C++ пакетный менеджер для conda-сред. Поскольку у него нет зависимостей от Python, он может эффективно создавать среды для любой версии Python из единственного двоичного файла micromamba. Если ни один из ваших пакетов conda не имеет зависимости от Python, то Micromamba даже создаст среду conda без Python!

Micromamba избавляет от необходимости в "дистрибутивах", таких как Anaconda или Miniconda. Вы можете настраивать желаемую среду напрямую.

Переменные роли

arch: linux-64
version: latest

Для последних архитектур и номеров версий проверьте distributions[#].basename, который имеет формат {arch}/micromamba-{version}.tar.bz2. Текущие возможные значения для arch — это linux-64, linux-aarch64, osx-64, osx-arm64, win-64. Формат version — это либо latest, либо что-то вроде 0.15.2-0, где -0 обозначает номер сборки.


dest: /usr/local/bin/micromamba

Местоположение исполняемого файла micromamba.


root_prefix: /opt/conda

Когда корневой префикс определен и еще не существует, новый корневой префикс будет создан в этом месте.


packages:
  - mamba
  - python=3.9

Список начальных пакетов conda, которые должны быть установлены при создании нового корневого префикса.


file: /tmp/environment.yaml

В качестве альтернативы списку packages можно предоставить файл среды или файл блокировки.


root_prefix_condarc:
  channels:
    - conda-forge

Содержимое, которое будет записано в .condarc в новом корневом префиксе. Если не задано, то файл .condarc не создается.

Примеры плейбуков

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

Это загружает исполняемый файл micromamba в стандартное местоположение /usr/local/bin/micromamba.


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

Это загружает micromamba в /tmp/micromamba и создает новый корневой префикс в /opt/conda/ с Python 3.9 и Mamba.


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

Это создает новый корневой префикс в /home/conda-user/micromamba и создает среду conda без Python. Также в корневом префиксе помещается файл .condarc, чтобы настроить установку пакетов по умолчанию из канала conda-forge.

Дальнейшее использование

Чтобы запустить любые команды из среды conda, ее необходимо сначала активировать. Активация включает изменение PATH и других переменных окружения в активной оболочке (обычно Bash). Это можно сделать различными способами.

Прямо

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

Первая команда выполняет последовательность команд, которые определяют функцию Bash с тем же именем micromamba. (В противном случае исполняемый файл micromamba запустится как субпроцесс, который не может изменить среду оболочки.) Вторая команда запускает новоопределенную функцию Bash для активации среды, расположенной в /opt/conda.

С помощью скрипта инициализации

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

Это изменяет ~/.bashrc, так что в последующих интерактивных сессиях Bash команда micromamba activate будет достаточно для активации среды. (Команду micromamba activate можно добавить в ~/.bashrc, если это необходимо.)

С помощью mamba или conda

Поскольку micromamba является экспериментальным, вместо того, чтобы полагаться на описанные выше способы активации через micromamba, рекомендуется установить mamba в среду и выполнить

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

Эти команды изменяют ~/.bashrc, так что среда будет полностью активирована в последующих интерактивных сессиях Bash.

Устранение неполадок

Если Bash не запускается в интерактивном режиме, файл .bashrc не будет загружен, поэтому запуск команды micromamba activate завершится неудачей. В этом случае вы можете использовать прямую процедуру активации или запустить интерактивную оболочку, передав флаг -i команде bash.

Лицензия

MIT

Информация об авторе

В настоящее время поддерживается Беном Мэресом (@maresb) и Андреасом Травогером (@atrawog). Исходная версия была создана @maresb. Приветствуются вклады и предложения!

О проекте

Install micromamba, and optionally create a base conda environment.

Установить
ansible-galaxy install maresb/ansible-micromamba-role
Лицензия
mit
Загрузки
146
Владелец
Mathematician, Freelancer