如何在Ubuntu 22.04上安装asdf以管理多个编程语言运行时版本
引言
asdf 是一种命令行接口工具,用于管理多种编程语言的不同运行时版本。它将所有运行时统一管理在一个配置文件下,并使用插件结构通过一个工具来管理所有内容。例如,您可以安装 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.
第一步 – 安装asdf核心。
asdf依赖于一个核心的安装,它本身没有功能。asdf核心依赖于特定于某个编程语言或程序的独立插件。最常见的用途是安装和管理多个版本的编程语言。建议您使用Ubuntu 22.04自带的git下载asdf核心。要获取最新版本的asdf,请从asdf存储库克隆最新的分支。
- git clone https://github.com/asdf-vm/asdf.git ~/.asdf –branch v0.10.2
根据Shell类型和下载方法,asdf需要进行独特的安装。在Ubuntu中,默认使用Bash作为其Shell,它使用~/.bashrc文件进行配置和定制。为了启用asdf命令的使用,您需要添加以下这行代码:
- echo “. $HOME/.asdf/asdf.sh” >> ~/.bashrc
接下来,确保您的更改应用到当前会话中。
- source ~/.bashrc
Note
有了核心安装后,现在您可以安装插件。
第二步 – 安装 asdf Node.js 插件和构建依赖
安装 Node.js 的插件不等于仅安装 Node.js 本身。这将在下一步中进行。如前所述,使用可用的 asdf 配置的最低要求是 asdf 核心和至少一个插件。一旦安装了这个插件,您可以使用它来安装它处理的运行时。
每一个 asdf 插件都被单独维护着。有些由核心 asdf 团队负责维护,但大部分是由社区维护的。每个 asdf 插件都有自己的仓库和需要安装的依赖。你必须检查每个插件的仓库,比如 Node.js 插件仓库。这个插件特别由 asdf 团队官方维护。
要安装插件,请使用以下的asdf plugin add命令:
- asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
对于这个 Node.js 插件,它的“README”文件的“使用”部分中提到了它的依赖关系。在该部分中,明确的依赖关系链接到了官方 Node.js 仓库中构建 Node.js 的部分。这必须手动完成,因为 asdf 是针对多个操作系统的解决方案,每个操作系统都有自己独特的依赖关系和安装方法。这也可能因插件而异。对于 Ubuntu 上的这个插件,您需要安装这些依赖关系。首先更新您的 apt 源索引。
- sudo apt update
然后,你可以安装所需的依赖库。
- sudo apt install python3 g++ make python3-pip
对于这个Node.js插件,根据您需要安装的版本,它会选择预编译的二进制文件或从源代码编译二进制文件。如果您选择了需要从源代码编译的版本,则需要上述依赖项。
成功安装了插件后,接下来可以安装Node.js。
第三步-安装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
安装了这两个版本后,您可以通过以下方式检查您拥有的所有版本。
- asdf list nodejs
16.16.0 18.10.0
另外,如果你想删除某个版本的话,你可以使用卸载命令并指定特定的版本目标。
- asdf uninstall nodejs 16.16.0
现在Node.js已安装完成,您可以选择要激活的版本。
步骤4 — 选择激活的Node.js版本
asdf 可以在三个不同级别上设置 Node.js 的版本:本地、全局和 shell。如果你只想为项目的工作目录设置 Node.js 版本,请运行以下命令:
- asdf local nodejs latest
将当前版本设置为全球级别,对于您的系统在用户级别生效。
- asdf global nodejs latest
如果您只想为当前的 shell 会话设置版本,请输入以下内容:
- asdf shell nodejs latest
现在你使用asdf完成了Node.js的完整安装,具备了在你想要的范围内切换到所需版本的能力。
结论
在本教程中,您安装了asdf核心、asdf Node.js插件,然后安装了Node.js本身。asdf允许安装多个运行时版本,并且您可以根据不同的作用域范围选择版本,从全局到工作项目目录。如果您对Node.js的传统安装感兴趣,请查看我们关于如何在Ubuntu 22.04上安装Node.js的教程。