如何在Linux中使用n管理Node.js版本

本指南为您简要介绍了 “ n”,这是一种非官方的节点版本管理工具,然后说明了如何在Linux操作系统中轻松地使用n来管理nodejs版本。

节点版本管理器n是什么?

节点JS 不需要介绍。 Nodejs是一个基于Google V8引擎构建的JavaScript运行时环境。 Nodejs带有一个内置的程序包管理器,称为 npm 安装和管理节点版本,还有许多第三方工具可用于管理节点版本。 n是第三方节点版本管理工具之一。 是的,它只是一个字母-n。

ñ 是一个交互式节点版本管理器,可轻松管理单个或多个NodeJS版本! 没有子shell,没有配置文件设置,没有复杂的API,没有学习曲线,这仅仅是 简单的 工具。 它只是shell脚本,其代码可在GitHub上免费获得。

1.在Linux中安装n

安装n的最简单方法是通过 npm。 如前所述,Npm是Nodejs的内置软件包管理器,并已预装Nodejs。

我假设您已经在Linux机器上安装了最新的Node.js。 如果尚未安装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 版本号和 npm

1.2。 创建用于节点安装的主目录

默认情况下,n个安装 node 在下面 n/versions 的子目录 /usr/local/ 目录,该目录在 N_PREFIX 环境变量。 如您所知,我们要求 sudo 下安装节点的权限 /usr/local/n/versions/node/ 目录。 避免使用 sudo,您可以在$ HOME中创建一个用于节点安装的专用目录,并将其添加到您的 PATH

要创建用于节点安装的主目录,请编辑您的用户配置文件,例如 ~/.bashrc

$ vi ~/.bashrc

添加以下行:

export N_PREFIX=$HOME/.nexport PATH=$N_PREFIX/bin:$PATH

ESC 键和类型 :wq 保存文件并退出。

1.3。 使用n-install脚本安装n

安装n的另一种方法是通过 n安装 脚本,直接从GitHub安装n。

$ curl -L https://git.io/n-install | bash

该命令将执行以下任务:

  • 首先,它同时设置了 PREFIXN_PREFIX$HOME/n;
  • 并且,安装 n$HOME/n/bin;
  • 接下来,修改要导出的受支持shell的初始化文件 N_PREFIX;
  • 然后,添加 $HOME/n/binPATH;
  • 最后,安装最新的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"

在Linux中使用n安装nodejs版本

节点的旧版本将被移动到新位置,即 /home/ostechnix/.n/bin/node 就我而言。 打开一个新的Shell会话或重新启动终端会话以使用新位置中的节点版本。

检查已安装的节点版本:

$ node --version
v16.2.0

检查npm版本:

$ npm -v
7.13.0

同样,您可以使用以下命令安装LTS节点版本 ñ 如下所示:

$ 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

此命令将仅下载节点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。 列出远程存储库中可用的Node.js版本

我们可以用 ls-remote 选项可从以下位置查看Nodejs的最新20个版本 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

使用n切换Nodejs版本

默认版本在其前面带有一个小圆圈。

如果您不想下载特定的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 完全删除的关键 nodenpm 安装者 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脚本将很有帮助。 您无需删除一个版本的Node.js,而为每个项目安装另一个版本。 您可以安装多个Nodejs版本,并立即从一个Nodejs版本切换到另一个。

资源

Linux管理nodenNodeNodejsNpmOpensource

Sidebar