mambaorg.micromamba
Ansible роль: mambaorg.micromamba
Установите micromamba и при желании создайте корневую/базовую среду conda.
Ссылки
- GitHub
- Galaxy
- Пример расширенного использования для настройки системы conda в образе Docker
Мотивация
Conda — это мощный инструмент управления зависимостями для Python. К сожалению, для сред с большим количеством зависимостей его медленный решатель зависимостей может работать часами.
Новый проект Mamba решает эту проблему, переimplementируя решатель зависимостей на 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 mambaorg.micromamba