本指南为您简要介绍 “n”,一个非官方的 node 版本管理工具,然后解释如何在 Linux 操作系统中使用 n 轻松管理 nodejs 版本。
内容
什么是节点版本管理器 n?
节点 不需要介绍。 Nodejs 是基于 Google V8 引擎构建的 JavaScript 运行时环境。 Nodejs 带有一个名为的内置包管理器 npm
安装和管理节点版本,还有许多第三方工具可以管理节点版本。 n 是第三方节点版本管理工具之一。 是的,它只是一个字母 – n。
这 n 是一个交互式节点版本管理器,可以轻松管理单个或多个 NodeJS 版本! 没有子shell,没有配置文件设置,没有复杂的API,没有学习曲线,它只是一个 简单的 工具。 它只是一个 shell 脚本,它的代码可以在 GitHub 中免费获得。
1.在Linux中安装n
安装 n 的最简单方法是通过 npm
. 如前所述,Npm 是 Nodejs 的内置包管理器,并预装在 Nodejs 中。
我假设您的 Linux 机器上已经安装了最新的 Nodejs。 如果您还没有安装 NodeJS,请参考以下指南:
- 如何在 Linux 上安装 NodeJS
接下来,运行以下命令在 Linux 中安装 n:
$ npm install -g n
如果 npm 不可用或者你不想用 npm 安装 n,你可以直接从 GitHub 抓取 n 脚本并像下面这样安装它:
$ curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
$ bash n lts
这将同时安装 node
lts 版本和 npm
.
1.2. 为节点安装创建主目录
默认情况下,n 安装 node
在下面 n/versions
的子目录 /usr/local/
目录中定义的 N_PREFIX
环境变量。 如您所知,我们需要 sudo
安装节点的权限 /usr/local/n/versions/node/
目录。 为避免使用 sudo
,您可以在 $HOME 中创建一个用于节点安装的专用目录,并将它们添加到您的 PATH
.
要为节点安装创建主目录,请编辑您的用户配置文件,例如 ~/.bashrc
:
$ vi ~/.bashrc
添加以下几行:
N_PREFIX=$HOME/.n
PATH=$N_PREFIX/bin:$PATH
按 ESC
键和类型 :wq
保存文件并退出。
1.3. 使用 n-install 脚本安装 n
安装 n 的另一种方法是通过 n-安装 脚本,它直接从 GitHub 安装 n。
$ curl -L https://git.io/n-install | bash
此命令将执行以下一组任务:
- 首先,它同时设置
PREFIX
和N_PREFIX
到$HOME/n
; - 并且,安装
n
到$HOME/n/bin
; - 接下来修改支持shell的初始化文件导出
N_PREFIX
; - 然后,添加
$HOME/n/bin
到PATH
; - 最后,安装最新的 LTS Node.js 版本。
2、Linux下用n管理nodejs版本
使用 n 安装和管理 nodejs 版本非常简单! 让我们看几个例子。
2.1. 获得帮助
如果您不熟悉 n,那么调出帮助部分并学习如何使用 n 可能是个好主意。
要查看 n 的帮助部分,只需运行:
$ n --help
查看帮助手册以了解每个命令的用法。
Usage: n [options] [COMMAND] [args] Commands: n Display downloaded Node.js versions and install selection n latest Install the latest Node.js release (downloading if necessary) n lts Install the latest LTS Node.js release (downloading if necessary) n Install Node.js (downloading if necessary) n install Install Node.js (downloading if necessary) n run [args …] Execute downloaded Node.js with [args …] n run [args …] Execute downloaded node with [args …] n which Output path for downloaded node n exec [args…] Execute command with modified PATH, so downloaded node and npm first n rm Remove the given downloaded version(s) n prune Remove all downloaded versions except the installed version n --latest Output the latest Node.js version available n --lts Output the latest LTS Node.js version available n ls Output downloaded versions n ls-remote [version] Output matching versions available for download n uninstall Remove the installed Node.js Options: -V, --version Output version of n -h, --help Display help information -p, --preserve Preserve npm and npx during install of Node.js -q, --quiet Disable curl output (if available) -d, --download Download only -a, --arch Override system architecture --all ls-remote displays all matches instead of last 20 --insecure Turn off certificate checking for https requests (may be needed from behind a proxy server) --use-xz/--no-use-xz Override automatic detection of xz support and enable/disable use of xz compressed node downloads. Aliases: install: i latest: current ls: list lsr: ls-remote lts: stable rm: - run: use, as which: bin Versions: Numeric version numbers can be complete or incomplete, with an optional leading 'v'. Versions can also be specified by label, or codename, and other downloadable releases by / 4.9.1, 8, v6.1 Numeric versions lts Newest Long Term Support official release latest, current Newest official release auto Read version from file: .n-node-version, .node-version, .nvmrc, or package.json engine Read version from package.json boron, carbon Codenames for release streams lts_latest Node.js support aliases and nightly, rc/10 et al
2.2. 使用 n 安装 Nodejs 版本
安装最新的 nodejs 版本 n
,只需运行:
$ n latest
示例输出:
installing : node-v16.2.0 mkdir : /home/ostechnix/.n/n/versions/node/16.2.0 fetch : https://nodejs.org/dist/v16.2.0/node-v16.2.0-linux-x64.tar.xz installed : v16.2.0 (with npm 7.13.0) Note: the node command changed location and the old location may be remembered in your current shell. old : /home/ostechnix/.nvm/versions/node/v16.1.0/bin/node new : /home/ostechnix/.n/bin/node To reset the command location hash either start a new shell, or execute PATH="$PATH"
旧版本的节点将被移动到新位置即 /home/ostechnix/.n/bin/node
就我而言。 打开一个新的 shell 会话或重新启动终端会话以使用新位置的节点版本。
检查安装的节点版本:
$ node --version v16.2.0
检查 npm 版本:
$ npm -v 7.13.0
同样,您可以使用以下命令安装 LTS 节点版本 n 像下面这样:
$ n lts
示例输出:
installing : node-v14.17.0 mkdir : /home/ostechnix/.n/n/versions/node/14.17.0 fetch : https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz installed : v14.17.0 (with npm 6.14.13)
您还可以安装特定的 Nodejs 版本,例如 16.0.0
,使用命令:
$ n 16.0.0
您可能已经注意到, n 为每个节点版本创建单独的目录。 例如,它创建 /home/ostechnix/.n/n/versions/node/16.2.0
最新节点版本的目录, n/versions/node/14.17.0
对于节点 LTS 版本和 n/versions/node/16.0.0
对于节点版本 16.0.0。 这样一来,每个版本都不会相互混合,我们可以随时切换到任何版本。
2.3. 下载 Nodejs 版本,但不要安装
如果您不想安装 Nodejs 版本,而只想下载它,请使用 -d
, --download
选项:
$ n -d 15.8.0
这个命令只会下载node 15.8.0版本,不会安装。
示例输出:
installing : node-v15.8.0 mkdir : /home/ostechnix/.n/n/versions/node/15.8.0 fetch : https://nodejs.org/dist/v15.8.0/node-v15.8.0-linux-x64.tar.xz
2.4. 列出本地下载的 Nodejs 版本
要查看本地缓存中所有下载的 Nodejs 版本,只需运行:
$ n ls
或者,
$ n list
示例输出:
node/14.17.0 node/15.8.0 node/16.0.0 node/16.2.0
2.5. 列出远程存储库中可用的 Nodejs 版本
我们可以用 ls-remote
查看最近 20 个版本的 Nodejs 的选项 npm 注册表.
$ n ls-remote
或者,
$ n lsr
示例输出:
Listing remote… Displaying 20 matches (use --all to see all). 16.2.0 16.1.0 16.0.0 15.14.0 15.13.0 15.12.0 15.11.0 15.10.0 15.9.0 15.8.0 15.7.0 15.6.0 15.5.1 15.5.0 15.4.0 15.3.0 15.2.1 15.2.0 15.1.0 15.0.1
最新版本将显示在顶部。
默认情况下,它列出了 20 个版本。 您还可以显示一定数量的节点版本。
$ n lsr 10
要列出所有可用的 nodejs 版本,请使用 --all
选项。
$ n ls-remote --all
2.6. 显示下载的Nodejs版本的路径
要打印特定下载节点版本的完整路径,请运行:
$ n which node/16.2.0
示例输出:
/home/ostechnix/.n/n/versions/node/16.2.0/bin/node
2.7. 切换 Nodejs 版本
最后安装的版本将是默认节点版本。 如果要切换到其他版本,请键入 n
并从下载的节点版本列表中选择一个版本。
$ n
此命令将显示所有下载的 nodejs 版本。 您可以使用向上/向下箭头选择所需的版本,然后按 ENTER 键进行安装。
node/14.17.0 node/15.8.0 ο node/16.0.0 node/16.2.0 Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
默认版本前面有一个小圆圈表示。
如果您不想要特定下载的 nodejs 版本,只需选择它并按 d
删除它。 要退出,请按 q
.
2.8. 执行下载的Nodejs版本
如前所述,最后安装的版本是默认节点版本。 如果要执行不同的版本而不将其设置为默认值,可以使用以下命令:
$ n run 15.8.0
示例输出:
Welcome to Node.js v15.8.0. Type ".help" for more information. >
按 Ctrl+D
或输入 .exit
退出节点提示。
2.9. 删除下载的 Nodejs 版本
使用命令列出下载了多少节点版本:
$ n ls
要删除特定版本,只需提及其版本号,如下所示:
$ n rm node/16.0.0
或者,键入 n
查看可用的节点版本:
$ n
使用向上/向下箭头选择要删除的版本,然后按 d
删除它。 删除节点版本时必须小心。 因为不会提示您确认删除。 一旦你击中 d
所选版本将消失。
要删除除已安装版本之外的所有下载版本,请运行:
$ n prune
要完全删除已安装的 Nodejs 版本,请运行:
$ n uninstall
您将询问是否要从系统中删除 Node 和 Npm。 类型 y
并击中 ENTER
彻底删除的关键 node
和 npm
安装者 n
从你的系统。
Do you wish to delete node and npm from /home/ostechnix/.n? y Uninstalling node and npm /home/ostechnix/.n/bin/node /home/ostechnix/.n/bin/npm /home/ostechnix/.n/bin/npx /home/ostechnix/.n/include/node /home/ostechnix/.n/lib/node_modules/npm /home/ostechnix/.n/share/doc/node /home/ostechnix/.n/share/man/man1/node.1 /home/ostechnix/.n/share/systemtap/tapset/node.stp
但是,这不会删除使用 NVM 或您的分发包管理器安装的节点版本。 它只会删除与 n 一起安装的节点版本。
结论
当你想为不同的项目使用不同的 Nodejs 版本时,n 脚本会很有帮助。 您无需为每个项目删除一个版本的 Nodejs 并安装另一个版本。 您可以安装多个 Nodejs 版本并立即从一个 Nodejs 版本切换到另一个版本。
资源:
- n GitHub 存储库
- n-install 脚本 GitHub 存储库
LinuxManage nodeNodeNodejsNpmOpensource