Skip to content

バージョン

バージョンのインストール

shell
asdf install <name> <version>
# asdf install erlang 17.3
asdf install <name> <version>
# asdf install erlang 17.3

プラグインが、ソースコードからのダウンロード・コンパイルをサポートしている場合、ref:fooの形式(fooは特定のブランチ、タグ、またはコミット)でバージョンを指定できます。アンインストールするときも、同じ名前とバージョンを指定する必要があります。

最新安定バージョンのインストール

shell
asdf install <name> latest
# asdf install erlang latest
asdf install <name> latest
# asdf install erlang latest

下記のように、特定のプレフィックスでの最新安定バージョンをインストールすることもできます。

shell
asdf install <name> latest:<version>
# asdf install erlang latest:17
asdf install <name> latest:<version>
# asdf install erlang latest:17

インストール済みバージョン一覧

shell
asdf list <name>
# asdf list erlang
asdf list <name>
# asdf list erlang

下記のように、特定のプレフィックスでのバージョンでフィルタすることもできます。

shell
asdf list <name> <version>
# asdf list erlang 17
asdf list <name> <version>
# asdf list erlang 17

インストール可能な全バージョン一覧

shell
asdf list all <name>
# asdf list all erlang
asdf list all <name>
# asdf list all erlang

下記のように、特定のプレフィックスでのバージョンでフィルタすることもできます。

shell
asdf list all <name> <version>
# asdf list all erlang 17
asdf list all <name> <version>
# asdf list all erlang 17

最新安定バージョンの表示

shell
asdf latest <name>
# asdf latest erlang
asdf latest <name>
# asdf latest erlang

下記のように、特定のプレフィックスでの最新安定バージョンで表示することもできます。

shell
asdf latest <name> <version>
# asdf latest erlang 17
asdf latest <name> <version>
# asdf latest erlang 17

カレントバージョンのセット

shell
asdf global <name> <version> [<version>...]
asdf shell <name> <version> [<version>...]
asdf local <name> <version> [<version>...]
# asdf global elixir 1.2.4

asdf global <name> latest[:<version>]
asdf local <name> latest[:<version>]
# asdf global elixir latest
asdf global <name> <version> [<version>...]
asdf shell <name> <version> [<version>...]
asdf local <name> <version> [<version>...]
# asdf global elixir 1.2.4

asdf global <name> latest[:<version>]
asdf local <name> latest[:<version>]
# asdf global elixir latest

globalの場合、バージョンは$HOME/.tool-versionsファイルに書き込まれます。

shellの場合、バージョンはASDF_${TOOL}_VERSIONという環境変数に設定され、現在のシェルセッションでのみ有効となります。

localの場合、バージョンは$PWD/.tool-versionsファイルに書き込まれます。存在しない場合は作成されます。

.tool-versionsファイルについて詳しくは、構成設定のリファレンスをご覧ください。

代替手段

現在のシェルセッションでのみバージョンを設定したい場合、 または、特定のツールバージョンでコマンドを実行するだけのためにバージョンを設定したい場合は、 ASDF_${TOOL}_VERSIONという環境変数で設定することができます。

下記の例では、バージョン1.4.0のElixirプロジェクトに対して、テストを実行させています。 バージョンの表記形式は、.tool-versionsファイルでサポートされているものと同じです。

shell
ASDF_ELIXIR_VERSION=1.4.0 mix test
ASDF_ELIXIR_VERSION=1.4.0 mix test

システムバージョンへの委任

asdfで管理されているバージョンではなく、<name>で指定されたツールのシステムバージョンを使用するには、バージョンとしてsystemを指定します。

カレントバージョンのセットと同様の方法で、globallocal、またはshellのいずれかにsystemをセットしてください。

shell
asdf local <name> system
# asdf local python system
asdf local <name> system
# asdf local python system

カレントバージョンの表示

shell
asdf current
# asdf current
# erlang          17.3          /Users/kim/.tool-versions
# nodejs          6.11.5        /Users/kim/cool-node-project/.tool-versions

asdf current <name>
# asdf current erlang
# erlang          17.3          /Users/kim/.tool-versions
asdf current
# asdf current
# erlang          17.3          /Users/kim/.tool-versions
# nodejs          6.11.5        /Users/kim/cool-node-project/.tool-versions

asdf current <name>
# asdf current erlang
# erlang          17.3          /Users/kim/.tool-versions

バージョンのアンインストール

shell
asdf uninstall <name> <version>
# asdf uninstall erlang 17.3
asdf uninstall <name> <version>
# asdf uninstall erlang 17.3

Shims

asdfがパッケージをインストールすると、そのパッケージに含まれるすべての実行プログラムのShimが$ASDF_DATA_DIR/shimsディレクトリ(デフォルトは~/.asdf/shims)に作成されます。このディレクトリが(asdf.shasdf.fishなどによって)$PATHに設定されることで、インストールされているプログラムが当該環境で利用できるようになります。

Shim自体は非常に単純なラッパーであり、asdf execというヘルパープログラムに、プラグイン名と、Shimがラップしているインストール済みパッケージの実行ファイルのパスを渡して、execします。

asdf execヘルパーは、使用するパッケージのバージョン(.tool-versionsファイルで指定されたもの、またはasdf local ...asdf global ...で指定されたもの)、パッケージのインストールディレクトリにある実行ファイルの完全パス(プラグインのexec-pathコールバックで操作可能)、および実行環境(プラグインのexec-envスクリプトで提供)を決定し、実行します。

備考

本システムはexec呼び出しを使用するため、シェルによってsourceされるパッケージ内のスクリプトは、Shimラッパーを経由させずに直接アクセスする必要があります。asdfで用意されているwhichおよびwhereコマンドは、下記のように、インストールされたパッケージへのパスを返すため、この状況を解決するのに役立ちます:

shell
# returns path to main executable in current version
source $(asdf which ${PLUGIN})/../script.sh

# returns path to the package installation directory
source $(asdf where ${PLUGIN})/bin/script.sh
# returns path to main executable in current version
source $(asdf which ${PLUGIN})/../script.sh

# returns path to the package installation directory
source $(asdf where ${PLUGIN})/bin/script.sh

asdfのShimのバイパス

何らかの理由でasdfのShimをバイパスしたい場合や、プロジェクトのディレクトリに移動した際に自動的に環境変数を設定したい場合は、asdf-direnvプラグインが役に立ちます。詳細はREADMEをご確認ください。