mambaorg.micromamba
Ansibleロール: mambaorg.micromamba
micromambaをインストールし、オプションでルート/ベースのconda環境を作成します。
リンク
背景
CondaはPython中心の非常に強力な依存関係管理ツールですが、多くの依存関係を持つ環境では、その遅い依存関係解決ツールが数時間かかる場合があります。
新しいMambaプロジェクトは、C++で依存関係解決ツールを再実装しており、非常に高速です。mamba
は依存関係解決以外のほとんどの作業を、信頼できるconda
ツールに委任します。
Micromambaは、conda環境用の非常に実験的な純C++パッケージマネージャーです。Python依存がないため、単一のmicromamba
バイナリで任意のPythonバージョンの環境を効率的に作成できます。もしcondaパッケージにPython依存がなければ、MicromambaはPythonなしのconda環境を作成します!
Micromambaは、AnacondaやMinicondaのような「ディストリビューション」の必要を排除します。希望の環境を直接設定できます。
ロールの変数
arch: linux-64
version: latest
最新のアーキテクチャとバージョン番号は、形式が{arch}/micromamba-{version}.tar.bz2
のdistributions[#].basename
を確認してください。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
ファイルは作成されません。
例PLAYBOOK
- 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
コマンドのみで環境をアクティブ化できるようになります。(希望する場合は、~/.bashrc
にmicromamba activate
コマンドを追加できます。)
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
作者情報
現在@maresb(ベン・マレス)と@atrawog(アンドレアス・トラヴォーガー)がメンテナンスしています。初版は@maresbによるものです。貢献は大歓迎です!