Ubuntu 22.04で複数のプログラミング言語のランタイムバージョンを管理するためにasdfをインストールする方法
以下は日本語でのパラフレーズです(1つのオプション):
はじめに
asdfは、複数のプログラミング言語で異なるランタイムバージョンを管理するためのコマンドラインインターフェースツール、またはCLIツールです。このツールは、すべてのランタイムを1つの設定ファイルの下で統一し、プラグイン構造を使用してすべてを一つのツールで管理します。例えば、Node.jsをインストールすることができますが、各プラグインは公式に管理されたり、コミュニティの貢献者によって管理される形で、asdfがプラグインの中央リポジトリとして機能します。
このチュートリアルでは、機能に最小限必要なビルド依存関係がある asdf のコアと Node.js プラグインをインストールします。その後、希望する範囲に応じて使用するバージョンを管理し、Node.js をインストールします。
前提条件
- An Ubuntu 22.04 server, set up according to our initial server setup guide for Ubuntu 22.04, with a non-root user with sudo privileges and a firewall enabled.
第1ステップ:asdfコアのインストール
asdfは、単独では機能を持たないコアのインストールに依存しています。asdfコアは、特定のプログラミング言語やプログラムに固有のプラグインに依存しています。最も一般的には、特定のプログラミング言語の複数バージョンをインストールおよび管理するために使用されます。Ubuntu 22.04にデフォルトでインストールされているgitを使用して、asdfコアをダウンロードすることが推奨されています。最新バージョンのasdfを取得するには、asdfリポジトリから最新のブランチをクローンしてください。
- git clone https://github.com/asdf-vm/asdf.git ~/.asdf –branch v0.10.2
asdfは、シェルの種類とダウンロード方法によって固有のインストールが必要です。デフォルトでは、UbuntuはシェルとしてBashを使用し、構成とカスタマイズには~/.bashrcファイルが利用されます。asdfコマンドの使用を有効にするには、次の行を追加する必要があります。
- echo “. $HOME/.asdf/asdf.sh” >> ~/.bashrc
次に、変更が現在のセッションに適用されていることを確認してください。
- source ~/.bashrc
Note
コアがインストールされている場合、プラグインをインストールすることができます。
ステップ2 — asdf Node.jsプラグインとビルドの依存関係のインストール
Node.jsのプラグインをasdfにインストールすることとNode.js自体をインストールすることは異なります。次のステップでそれが行われます。先に述べたように、使用可能なasdfのセットアップの最小要件はasdfコアと少なくとも1つのプラグインです。このプラグインをインストールしたら、それを使用して処理するランタイムをインストールすることができます。
すべてのasdfプラグインは個別に管理されています。一部はasdfのコアチームによって管理されていますが、ほとんどはコミュニティによって管理されています。各asdfプラグインには独自のリポジトリとインストールが必要な依存関係があります。Node.jsのプラグインリポジトリなど、各プラグインリポジトリを確認する必要があります。特にこのプラグインはasdfチームが公式に管理しています。
プラグインをインストールするために、以下の asdf plugin add コマンドを使用してください。
- asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
このNode.jsのプラグインでは、依存関係は「README」ファイルの「Use」セクションで言及されています。そのセクション内で、明示的な依存関係は公式のNode.jsリポジトリの「Node.jsのビルドに関するセクション」にリンクされています。これは手動で行う必要があります。なぜなら、asdfは複数のオペレーティングシステムを対象とするソリューションであり、それぞれのオペレーティングシステムに固有の依存関係とインストール方法が異なるためです。また、プラグインごとに異なる場合もあります。このプラグインをUbuntuで使用する場合、これらの依存関係をインストールする必要があります。まず、aptのソースインデックスを更新してください。
- sudo apt update
それでは、必要な依存関係をインストールすることができます。
- sudo apt install python3 g++ make python3-pip
このNode.jsのプラグインでは、インストールする必要があるバージョンによって、事前にコンパイルされたバイナリか、ソースからバイナリをコンパイルするかが選択されます。ソースからコンパイルする必要があるバージョンを選択した場合、前述の依存関係が必要です。
プラグインの正常なインストールが完了したら、次にNode.jsをインストールすることができます。
ステップ3 – Node.jsのインストール
最新バージョンまたは指定バージョンから複数のNode.jsバージョンをインストールすることができます。最新のNode.jsバージョンをインストールするには、以下を入力してください。
- asdf install nodejs latest
Trying to update node-build… ok Downloading node-v18.10.0-linux-x64.tar.gz… -> https://nodejs.org/dist/v18.10.0/node-v18.10.0-linux-x64.tar.gz Installing node-v18.10.0-linux-x64… Installed node-v18.10.0-linux-x64 to /home/sammy/.asdf/installs/nodejs/18.10.0
最新バージョンのインストールは、asdfによって提供されるショートカットであり、特別なバージョンではありません。asdfは、正確な番号を使用してバージョンを識別および強制します。特定のNode.jsのバージョンをインストールするには、以下を入力してください。
- asdf install nodejs 16.16.0
Trying to update node-build… ok Downloading node-v16.16.0-linux-x64.tar.gz… -> https://nodejs.org/dist/v16.16.0/node-v16.16.0-linux-x64.tar.gz Installing node-v16.16.0-linux-x64… Installed node-v16.16.0-linux-x64 to /home/sammy/.asdf/installs/nodejs/16.16.0
これらの2つのバージョンがインストールされている場合、以下の方法で持っている全てのバージョンを確認することができます。
- asdf list nodejs
16.16.0 18.10.0
さらに、特定のバージョンを削除したい場合は、アンインストールコマンドを使用することができます。
- asdf uninstall nodejs 16.16.0
Node.jsがインストールされたので、アクティブにしたいバージョンを選択することができます。
ステップ4 – アクティブなNode.jsのバージョンの選択
asdfは、Node.jsのバージョンを3つの異なるレベル(ローカル、グローバル、シェル)で設定することができます。プロジェクトの作業ディレクトリに対してのみNode.jsのバージョンを設定したい場合は、次のコマンドを実行してください。
- asdf local nodejs latest
現在のバージョンをグローバルレベルで設定することにより、システムのユーザーレベルに影響を与えます。
- asdf global nodejs latest
現在のシェルセッションだけにバージョンを設定したい場合は、以下のコマンドを入力してください。
- asdf shell nodejs latest
今、asdfを使用してNode.jsの完全なインストールができました。必要なバージョンにスコープで切り替える機能も備わっています。
結論
このチュートリアルでは、まずasdfのコア部分、次にasdf Node.jsプラグイン、そしてNode.jsそのものをインストールしました。asdfはランタイムの複数のバージョンをインストールすることができ、グローバルから作業プロジェクトディレクトリのような異なるレベルのスコープでバージョンを選択することができます。もしNode.jsの通常のインストール方法に興味がある場合は、Ubuntu 22.04にNode.jsをインストールする方法についてのチュートリアルを参照してください。