Co-authored-by: kodaka <1562923+kodaka@users.noreply.github.com>
6.2 KiB
バージョン
バージョンのインストール
asdf install <name> <version>
# asdf install erlang 17.3
プラグインが、ソースコードからのダウンロード・コンパイルをサポートしている場合、ref:foo
の形式(foo
は特定のブランチ、タグ、またはコミット)でバージョンを指定できます。アンインストールするときも、同じ名前とバージョンを指定する必要があります。
最新安定バージョンのインストール
asdf install <name> latest
# asdf install erlang latest
下記のように、特定のプレフィックスでの最新安定バージョンをインストールすることもできます。
asdf install <name> latest:<version>
# asdf install erlang latest:17
インストール済みバージョン一覧
asdf list <name>
# asdf list erlang
下記のように、特定のプレフィックスでのバージョンでフィルタすることもできます。
asdf list <name> <version>
# asdf list erlang 17
インストール可能な全バージョン一覧
asdf list all <name>
# asdf list all erlang
下記のように、特定のプレフィックスでのバージョンでフィルタすることもできます。
asdf list all <name> <version>
# asdf list all erlang 17
最新安定バージョンの表示
asdf latest <name>
# asdf latest erlang
下記のように、特定のプレフィックスでの最新安定バージョンで表示することもできます。
asdf latest <name> <version>
# asdf latest erlang 17
カレントバージョンのセット
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
ファイルについて詳しくは、構成設定のリファレンスをご覧ください。
:::warning 代替手段
現在のシェルセッションでのみバージョンを設定したい場合、
または、特定のツールバージョンでコマンドを実行するだけのためにバージョンを設定したい場合は、
ASDF_${TOOL}_VERSION
という環境変数で設定することができます。
:::
下記の例では、バージョン1.4.0
のElixirプロジェクトに対して、テストを実行させています。
バージョンの表記形式は、.tool-versions
ファイルでサポートされているものと同じです。
ASDF_ELIXIR_VERSION=1.4.0 mix test
システムバージョンへの委任
asdfで管理されているバージョンではなく、<name>
で指定されたツールのシステムバージョンを使用するには、バージョンとしてsystem
を指定します。
カレントバージョンのセットと同様の方法で、global
、local
、またはshell
のいずれかにsystem
をセットしてください。
asdf local <name> system
# asdf local python system
カレントバージョンの表示
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 uninstall <name> <version>
# asdf uninstall erlang 17.3
Shims
asdfがパッケージをインストールすると、そのパッケージに含まれるすべての実行プログラムのShimが$ASDF_DATA_DIR/shims
ディレクトリ(デフォルトは~/.asdf/shims
)に作成されます。このディレクトリが(asdf.sh
やasdf.fish
などによって)$PATH
に設定されることで、インストールされているプログラムが当該環境で利用できるようになります。
Shim自体は非常に単純なラッパーであり、asdf exec
というヘルパープログラムに、プラグイン名と、Shimがラップしているインストール済みパッケージの実行ファイルのパスを渡して、exec
します。
asdf exec
ヘルパーは、使用するパッケージのバージョン(.tool-versions
ファイルで指定されたもの、またはasdf local ...
かasdf global ...
で指定されたもの)、パッケージのインストールディレクトリにある実行ファイルの完全パス(プラグインのexec-path
コールバックで操作可能)、および実行環境(プラグインのexec-env
スクリプトで提供)を決定し、実行します。
::: warning 備考
本システムはexec
呼び出しを使用するため、シェルによってsourceされるパッケージ内のスクリプトは、Shimラッパーを経由させずに直接アクセスする必要があります。asdf
で用意されているwhich
およびwhere
コマンドは、下記のように、インストールされたパッケージへのパスを返すため、この状況を解決するのに役立ちます:
:::
# 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をご確認ください。