

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AL2023 での Node.js
<a name="nodejs"></a>

 [https://nodejs.org/](https://nodejs.org/) AL2023 の は、バージョン 20、22、24 で表されます。Amazon Linux はアップストリーム[のサポートスケジュール](https://github.com/nodejs/Release)に従い、任意の Node.js バージョンのサポートステータスは[、パッケージのサポートステータスページで](https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-package.html)常に確認できます。サポートされているすべての Node.js バージョンには名前空間があり、同じシステムに同時にインストールできます。名前空間を使用すると、Node.js の各インストールがファイルシステム内で一意になります。これは、ランタイムバージョンに基づいてキーディレクトリおよびファイルの名前を変更することで可能になります。実際の実行可能ファイル名は *node-\$1MAJOR\$1VERSION\$1* または *npm-\$1MAJOR\$1VERSION\$1* のようになります。ただし、アクティブにできる Node.js バージョンは一度に 1 つだけです。このアクティブなバージョンが、*node*、*npm*、*/usr/lib/node\$1modules* などのデフォルトのディレクトリとファイル名を提供し、現在アクティブなランタイムを指します。

 これを行うには、*alternatives* ツールの機能を使用します。デフォルトの実行可能ファイル名は仮の名前であり、インストールされている別の Node.js バージョンを指す場合は、いつでも変更される可能性があることに注意してください。この柔軟性により、shebang で *node* を使用するソフトウェアは、起動時に必要なバージョンを選択できます。ただし、特定のバージョンの Node.jsが必要な場合は、指定されたバージョンのランタイムを常に使用する名前空間付き実行可能ファイル (*node-20* や *node-22* など) を呼び出すことで、バージョンの永続化を実現できます。さらに、*npm* ツールの名前空間付き実行可能ファイル (npm-20 や npm-22 など) は、現在アクティブなランタイムに関係なく、常に対応する Node.js バージョンに関連付けられます。

 Node.js は、「」で始まる複数の名前空間パッケージとして配布されます`nodejs{MAJOR_VERSION}`。これらのパッケージは、*ノード*、互換性のあるバージョンの *npm* ツール、ドキュメント、ライブラリなどを提供します。たとえば、22 の*ノード*と *npm* Node.js は、それぞれ `nodejs22`パッケージと `nodejs22-npm`パッケージによって提供されます。

 *alternatives* ツールには、Node.js バージョンを切り替えるための単一のコマンドが用意されています。デフォルトでは、*alternatives* は自動モードに設定され、優先度を使用して現在アクティブな Node.js バージョンを決定します。ただし、インストールされているバージョンはどれも随時アクティブ化できます。現在、サポートされている Node.js バージョンの優先度はすべて同じです。つまり、最初にインストールされたバージョンが自動的にアクティブ化されます。

***alternatives* の便利な使用例**

1. どのような *alternatives* が設定されているかを確認します。

   ```
   alternatives --list
   ```

1. *node* の現在の設定を確認する

   ```
   alternatives --display node
   ```

1. Node.js バージョンをインタラクティブに変更する

   ```
   alternatives --config node
   ```

1. 手動モードに切り替えて特定のバージョンを選択する

   ```
   alternatives --set node /usr/bin/node-{MAJOR_VERSION}
   ```

1. バージョンの選択を自動モードに戻す

   ```
   alternatives --auto node
   ```