mambaorg.micromamba

Rola Ansible: mambaorg.micromamba

Instalacja micromamba i opcjonalne tworzenie środowiska bazowego conda.

Linki

Motywacja

Conda to bardzo potężne narzędzie do zarządzania zależnościami w Pythonie. Niestety, w środowiskach z dużą liczbą zależności, jego powolny solver zależności może zająć nawet godziny na ukończenie.

Nowy projekt Mamba rozwiązuje ten problem, implementując solver zależności w C++, co czyni go błyskawicznie szybkim. Oprócz solvera, mamba deleguje większość zadań do solidnego narzędzia conda.

Micromamba to bardzo eksperymentalny menedżer pakietów czystego C++ dla środowisk conda. Ponieważ nie ma zależności od Pythona, może efektywnie tworzyć środowiska dla dowolnej wersji Pythona z jednego binarnego pliku micromamba. Jeśli żaden z Twoich pakietów conda nie ma zależności od Pythona, to Micromamba może nawet utworzyć środowisko conda bez Pythona!

Micromamba eliminuje potrzebę posiadania "dystrybucji", takich jak Anaconda czy Miniconda. Możesz bezpośrednio ustawić swoje pożądane środowisko.

Zmienne roli

arch: linux-64
version: latest

Aby sprawdzić najnowsze architektury i numery wersji, sprawdź distributions[#].basename, który ma format {arch}/micromamba-{version}.tar.bz2. Obecne możliwe wartości dla arch to linux-64, linux-aarch64, osx-64, osx-arm64, win-64. Format version to albo latest, albo coś jak 0.15.2-0, gdzie -0 oznacza numer kompilacji.


dest: /usr/local/bin/micromamba

Lokalizacja pliku wykonywalnego micromamba.


root_prefix: /opt/conda

Gdy prefix główny jest zdefiniowany i nie istnieje, nowy prefix główny zostanie utworzony w tej lokalizacji.


packages:
  - mamba
  - python=3.9

Lista początkowych pakietów conda do zainstalowania, gdy nowy prefix główny zostanie stworzony.


file: /tmp/environment.yaml

Jako alternatywę dla listy packages, można podać plik środowiska lub plik blokady.


root_prefix_condarc:
  channels:
    - conda-forge

Zawartość do zapisania w .condarc w nowym prefixie głównym. Jeśli nie jest zdefiniowane, plik .condarc nie zostanie utworzony.

Przykłady Playbooków

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

To pobiera plik wykonywalny micromamba do domyślnej lokalizacji /usr/local/bin/micromamba.


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

To pobiera micromamba do /tmp/micromamba i tworzy nowy prefix główny w /opt/conda/ z Pythonem 3.9 i Mambą.


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

To tworzy nowy prefix główny w /home/conda-user/micromamba i tworzy środowisko conda bez Pythona. Dodatkowo umieszcza plik .condarc w prefixie głównym, aby skonfigurować domyślne źródło pakietów jako kanał conda-forge.

Kolejne użycie

Aby uruchomić jakiekolwiek polecenia z środowiska conda, należy je najpierw aktywować. Aktywacja polega na modyfikacji PATH i innych zmiennych środowiskowych w aktywnej powłoce (zwykle Bash). Można to zrobić na różne sposoby.

Bezpośrednio

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

Pierwsze polecenie wykonuje sekwencję komend, która definiuje funkcję Bash również nazwanej micromamba. (W przeciwnym razie plik wykonywalny micromamba działałby jako podproces, który nie jest w stanie zmodyfikować środowiska powłoki.) Drugie polecenie uruchamia nowo zdefiniowaną funkcję Bash, aby aktywować środowisko w /opt/conda.

Z użyciem skryptu inicjalizacyjnego

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

To modyfikuje ~/.bashrc, aby w kolejnych interaktywnych sesjach Basha wystarczyło wpisać micromamba activate, aby aktywować środowisko. (Polecenie micromamba activate można również dodać do ~/.bashrc, jeśli zajdzie taka potrzeba.)

Z użyciem mamba lub conda

Ponieważ micromamba jest eksperymentalny, zamiast polegać na powyższych możliwościach wykorzystujących micromamba do aktywacji, warto zainstalować mamba w środowisku i uruchomić

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

Te polecenia modyfikują ~/.bashrc, aby środowisko było w pełni aktywowane w kolejnych interaktywnych sesjach Basha.

Rozwiązywanie problemów

Jeśli Bash nie jest uruchamiany interaktywnie, plik .bashrc nie zostanie załadowany, więc uruchomienie micromamba activate zakończy się niepowodzeniem. W takim przypadku można użyć bezpośredniej procedury aktywacji lub wymusić interaktywną powłokę, dodając flagę -i do polecenia bash.

Licencja

MIT

Informacje o autorze

Obecnie utrzymywany przez Bena Maresa (@maresb) oraz Andreasa Trawoegera (@atrawog). Wersja początkowa autorstwa @maresb. Wszelkie wkłady są mile widziane!

O projekcie

Install micromamba, and optionally create a base conda environment.

Zainstaluj
ansible-galaxy install mambaorg.micromamba
Licencja
mit
Pobrania
594
Właściciel