本指南为您简要介绍 “n”,一个非官方的节点版本管理工具,然后解释了如何在Linux操作系统中轻松管理带有n的nodejs版本。
n 是什么,节点版本管理器?
节点JS 不需要介绍。 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
.
要为节点安装创建主目录,请编辑您的用户配置文件,例如 example ~/.bashrc
:
$ vi ~/.bashrc
添加以下行:
export N_PREFIX=$HOME/.n
export 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 版本,例如 example 16.0.0
,使用命令:
$ n 16.0.0
您可能已经注意到,n 为每个节点版本创建单独的目录。 为了 example, 它创建 /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 版本切换到另一个。
资源: