asdfの中でもよく使う、アップデート関連、プラグイン関連、バージョン関連のコマンドについて解説します。
アップデート関連
プラグイン自体のアップデートや追加したプラグインのアップデートについて解説します。
asdf自体のアップデート
それほど頻繁に実施する必要はりませんが、asdf自体をアップデートする場合は、以下のコマンドを実行します。
asdf update
すべてのプラグインのアップデート
特段理由がなければすべてのプラグインをアップデートする方が楽です。すでに追加済みのプラグインをすべてアップデートするときは、以下のコマンドを実行します。
asdf plugin-update --all
特定のプラグインのみをアップデート
たくさんのプラグインを追加していて全部アップデートするのは時間がかかる、バージョンをあげたくないプラグインがある、など何かしらの理由があって特定のプラグインのみをアップデートしたいときは、以下のコマンドを実行します。
asdf plugin-update <プラグイン名>
<プラグイン名>
には、アップデートしたいプラグインを指定します。
プラグイン関連
プラグインの表示、追加、削除など基本的な操作について解説します。
プラグインの一覧表示
プラグインを一覧表示するときは、以下のコマンドを実行します。
asdf plugin list all
大量に表示されますので、Grepで対象を絞り込む方がよいでしょう。
$ asdf plugin list all | grep node
nodejs *https://github.com/asdf-vm/asdf-nodejs.git
上記の例では、Node.jsのプラグイン名を調べるためににnode
でGrepし、nodejs
であることが分かりました。
現在インストール中のプラグインの一覧表示
すでにインストール済みのプラグインをしたいときは、以下のコマンドを実行します。
asdf plugin list
プラグインの追加
プラグインを追加するときは、以下のコマンドを実行します。
asdf plugin add <プラグイン名>
<プラグイン名>
のところは、追加したいプラグインの名前を指定します。
プラグインの削除
プラグインを削除するときは、以下のコマンドを実行します。
asdf plugin remove <プラグイン名>
<プラグイン名>
のところは、削除したいプラグインの名前を指定します。
バージョン関連
バージョンに関する操作について解説します。
使用可能なバージョンの一覧表示
特定のプラグインの使用可能なバージョンを一覧表示したいときは、以下のコマンドを実行します。
asdf list all <プラグイン名>
こちらもGrepを併用することでインストールしたいバージョンを特定するのがよいでしょう。
asdf list all nodejs | grep ^11.
上記のでは、nodejs
パッケージのうち、11系だけをGrepで絞り込んでいます。
インストール済みのバージョンを一覧表示
すでにインストール済みのバージョンを一覧表示したいときは、以下のコマンドを実行します。
asdf list <プラグイン名>
バージョンをインストールする
指定したバージョンをインストールするときは、以下のコマンドを実行します。
asdf install <プラグイン名> <バージョン>
<プラグイン名>
はインストールしたいプラグインの名前、<バージョン>
はインストールしたいバージョンを指定します。
バージョンをアンインストールする
指定したバージョンをアンインストールするときは、以下のコマンドを実行します。
asdf uninstall <プラグイン名> <バージョン>
<プラグイン名>
はアンインストールしたいプラグインの名前、<バージョン>
はアンインストールしたいバージョンを指定します。
バージョンの設定
asdfでは、global
、local
、shell
の3つの設定範囲があります。使用目的によって適切な設定範囲を選択することで、効率よくバージョン管理を行うことができます。
globalバージョンの設定
globalバージョンは、特に指定がない場合に使用されるバージョンです。globalバージョンを設定するときは、以下のコマンドを実行します。
asdf global <プラグイン名> <バージョン>
<プラグイン名>
はglobalバージョンを設定したいプラグインの名前、<バージョン>
はglobalバージョンに設定したいバージョンを指定します。
globalバージョンは、システム全体で使用するバージョンを設定するとよいでしょう。言い方を変えると、特段理由がない場合に使用するバージョンであるとも言えます。例えば、メインストリームのバージョンやLTSのバージョンを設定しておく運用方法が適切です。
localバージョンの設定
特定のフォルダ(ディレクトリ)内でのみ有効なバージョンです。globalバージョンで使用しているバージョンとは異なるバージョンを使いたい場合に使用するとよいでしょう。
localバージョンを設定するときは、以下のコマンドを実行します。
asdf local <プラグイン名> <バージョン>
現在のフォルダ(ディレクトリ)およびそのサブフォルダ(ディレクトリ)ではlocalバージョンが有効になります。このとき、.tool-versionsが作成され、使用するプラグインとバージョンが記録されます。
localバージョンは、プロジェクトで使用するバージョンを指定するために使用するとよいでしょう。
例えば、普段はPython 3.9.xを使用していますが、今携わっているプロジェクトでは、Python 3.7.xでないとビルドができないとしましょう。
この場合、globalバージョンは3.9.xですが、プロジェクトのフォルダ(ディレクトリ)内ではPython 3.7.xをlocalバージョンに指定しておくことで、このプロジェクト内だけは3.7.xを使用することができます。
もし、複数の保守プロジェクトを抱えている場合であれば、この恩恵はとても大きいものになります。
shellバージョンの設定
シェル内でのみ有効なバージョンです。使用頻度は高くありませんが、使用するコマンドが特定のバージョンを要求する場合などに重宝します。
shellバージョンを設定するときは、以下のコマンドを実行します。
asdf shell <プラグイン名> <バージョン>
これは現在のシェルの設定が変わるわけではなく、新にシェルを起動し、そこでのバージョンが設定したバージョンになります。そのため、使用を終了する場合は、exit
コマンドで抜けることができます。
shellバージョンは、特定のコマンドやツールを実行する際に、特定のバージョンまたは特定のバージョン以下でないと実行できない、といった場合に使用するとよいでしょう。
例えば、プロジェクトでは、Node.js 16.xを使用しています。リリース用のツールもNode.jsで書かれていますが、古いツールなためNode.js 11.xでないと動作しません。
こういった場合には、globalバージョンまたはlocalバージョンは16.xを設定し、ツールを実行するときだけ、shellバージョンに11.xを設定してコマンドを実行する運用にする方が、バージョンアップ対応を行うよりもコストメリットがあります。