mambaorg.micromamba

Rola Ansible: mambaorg.micromamba

Instalacja micromamba oraz opcjonalne stworzenie głównego/bazowego środowiska conda.

Linki

Motywacja

Conda to potężne narzędzie do zarządzania zależnościami w Pythonie. Niestety, w przypadku środowisk z dużą liczbą zależności, jego wolny solver zależności może zajmować godziny, aby zakończyć działanie.

Nowy projekt Mamba rozwiązuje ten problem, przepisując solver zależności w C++, co czyni go błyskawicznie szybkim. Poza solverem, mamba deleguje większość zadań do niezawodnego narzędzia conda.

Micromamba to wysoce eksperymentalny menedżer pakietów napisany w czystym C++ dla środowisk conda. Dzięki temu, że 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, Micromamba zdoła stworzyć środowisko conda bez Pythona!

Micromamba eliminuje konieczność korzystania z "dystrybucji" takich jak Anaconda czy Miniconda. Możesz bezpośrednio skonfigurować 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. Aktualne możliwe wartości dla arch to linux-64, linux-aarch64, osx-64, osx-arm64, win-64. Format version to albo latest, albo coś takiego jak 0.15.2-0, gdzie -0 oznacza numer kompilacji.


dest: /usr/local/bin/micromamba

Lokalizacja pliku wykonywalnego micromamba.


root_prefix: /opt/conda

Gdy określony jest prefiks główny i jeszcze nie istnieje, nowy prefiks główny zostanie utworzony w tej lokalizacji.


packages:
  - mamba
  - python=3.9

Lista początkowych pakietów conda do zainstalowania podczas tworzenia nowego prefiksu głównego.


file: /tmp/environment.yaml

Alternatywnie do listy packages, można podać plik środowiskowy lub plik blokady.


root_prefix_condarc:
  channels:
    - conda-forge

Zawartość do zapisania w pliku .condarc w nowym prefiksie głównym. Jeśli nie jest określona, plik .condarc nie zostanie utworzony.

Przykładowe playbooki

- 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 prefiks 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 prefiks główny w /home/conda-user/micromamba i tworzy środowisko conda bez Pythona. Umieszcza także plik .condarc w prefiksie głównym, aby skonfigurować pakiety do domyślnej instalacji z kanału conda-forge.

Użytkowanie późniejsze

Aby uruchomić jakiekolwiek polecenia z środowiska conda, najpierw musi być aktywowane. Aktywacja polega na zmianie PATH i innych zmiennych środowiskowych w aktywnym terminalu (zwykle Bash). Można to osiągnąć na różne sposoby.

Bezpośrednio

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

Pierwsze polecenie wykonuje sekwencję poleceń, która definiuje funkcję Bash o tej samej nazwie 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 znajdujące się w /opt/conda.

Z użyciem skryptu inicjalizacyjnego

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

To modyfikuje ~/.bashrc, aby w kolejnych interaktywnych sesjach Bash, komenda micromamba activate wystarczała do aktywacji środowiska. (Polecenie micromamba activate można dodać do ~/.bashrc, jeśli to pożądane.)

Z mamba lub conda

Ponieważ micromamba jest eksperymentalny, zamiast polegać na wyżej wymienionych możliwościach, które używają micromamba do aktywacji, zaleca się zainstalowanie mamba w środowisku i uruchomienie

/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 Bash.

Rozwiązywanie problemów

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

Licencja

MIT

Informacje o autorze

Obecnie utrzymywane przez Bena Maresa (@maresb) i 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
606
Właściciel
Mathematician, Freelancer