

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Node.js在 AL2 023
<a name="nodejs"></a>

 [https://nodejs.org/](https://nodejs.org/)在 AL2 023 中，由 20、22 和 24 版本表示。Amazon Linux 遵循上游[支持计划](https://github.com/nodejs/Release)，可以随时在 Package [支持状态页面上查看任何 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 版本处于活动状态。此活动版本提供了默认目录和文件名，例如 n *ode、*npm* 或/usr/lib/node\$1mod* *ule* s，将它们指向当前活动的运行时。

 这是利用 *alternatives* 工具的功能实现的。重要的是要记住，默认的可执行文件名是虚拟的，并且在指向不同安装的 Node.js 版本时可以随时更改。这种灵活性使得使用 *node* 在 shebang 中的软件可以在被调用时选择所需的版本。但是，当需要特定版本的Node.js时，可以通过调用命名空间可执行文件（例如 node *-20 或 nod* e-*22*）来实现版本的持久性，该可执行文件将始终使用指定的运行时版本。此外，*npm* 工具的命名空间可执行文件，如 npm-20 或 npm-22，总是与相应的 Node.js 版本相关联，无论当前活动的运行时是什么。

 Node.js以几个以 “” `nodejs{MAJOR_VERSION}` 开头的命名空间包的形式分发。这些软件包提供 n *ode*、*npm* 工具的兼容版本、文档、库等。例如，Node.js22 *中的节点*和 *npm* 分别由`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
   ```