mambaorg.micromamba
Ansibleロール: mambaorg.micromamba
micromambaをインストールし、オプションでルート/ベースのconda環境を作成します。
リンク
モチベーション
Condaは非常に強力なPython中心の依存関係管理ツールですが、多くの依存関係がある環境では、その遅い依存関係解決器が数時間かかることがあります。
新しいMambaプロジェクトは、C++で依存関係解決器を再実装することでこの問題に対処し、非常に高速です。mambaは、依存関係解決器を除くほとんどのタスクを、信頼できるcondaツールに委任します。
Micromambaは、完全にC++で実装された非常に実験的なconda環境用のパッケージマネージャーです。Python依存がないため、単一のmicromambaバイナリから任意のバージョンのPython用の環境を効率的に作成できます。もしcondaパッケージにPython依存がなければ、MicromambaはPythonなしでconda環境を作成することもできます。
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にダウンロードされ、Python 3.9とMambaを持つ新しいルートプレフィックスが/opt/conda/に作成されます。
- 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に新しいルートプレフィックスが作成され、Pythonなしでconda環境が作成されます。また、conda-forgeチャンネルからパッケージをデフォルトでインストールするように.condarcファイルも配置されます。
その後の使用
conda環境からコマンドを実行するには、まずアクティベートする必要があります。アクティベートは、アクティブなシェル(通常はBash)のPATHや他の環境変数を変更することを含みます。これはさまざまな方法で実現できます。
直接
eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda
最初のコマンドは、micromambaという名前のBash関数を定義する一連のコマンドを実行します。(そうでなければ、micromamba実行ファイルはサブプロセスとして実行され、シェルの環境を変更できません。)2つ目のコマンドは、/opt/condaにある環境をアクティベートするために新しく定義されたBash関数を実行します。
初期化スクリプトを使用
micromamba shell init --shell=bash --prefix=/opt/conda
これにより、~/.bashrcが変更され、以降のインタラクティブなBashセッションでmicromamba activateコマンドを実行するだけで環境がアクティベートされるようになります。(必要であれば、micromamba activateコマンドを~/.bashrcに追加できます。)
mambaまたはcondaを使用して
Micromambaは実験的なので、上記の可能性を使うのではなく、環境にmambaをインストールし、次のコマンドを実行することをお勧めします。
/opt/conda/bin/conda init bash
/opt/conda/bin/mamba init bash
これらのコマンドは~/.bashrcを変更し、次回のインタラクティブなBashセッションで環境が完全にアクティベートされるようにします。
トラブルシューティング
もしBashがインタラクティブに実行されていない場合、.bashrcが適用されず、micromamba activateが失敗します。この場合、直接アクティベート手順を使用するか、bashコマンドに-iフラグを渡してインタラクティブシェルを強制できます。
ライセンス
MIT
著者情報
現在、Ben Mares(@maresb)とAndreas Trawoeger(@atrawog)がメンテナンスを担当しています。初版は@maresbによって作成されました。寄稿は大歓迎です!
Install micromamba, and optionally create a base conda environment.
ansible-galaxy install mambaorg.micromamba