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