如何使用n卸载所有已安装的Node.js版本?

38

我使用工具n安装了几个Node.js版本。现在我要卸载所有的Node.js版本,使用以下命令:

sudo n prune

除了当前(已激活)版本外,如果我尝试卸载当前版本:

sudo n rm 6.10.2

我会收到以下错误信息:

Error: cannot remove currently active version (node/6.10.2)

我无法弄清如何设置系统(Arch Linux)的默认Node.js版本,该版本已经安装并用于安装n

如果使用以下命令卸载n

sudo npm uninstall -g n

它会将当前版本留在我的电脑上。

ls /usr/local/n/versions/node/                                                                                                                                                                      
6.10.2/

我需要手动删除文件夹:/usr/local/n/吗?或者说,在n中有一个选项可以卸载它和由n安装的所有Node.js版本,以便我得到在安装n之前的设置吗?

4个回答

49

请参见如何卸载n?#169 - Dan Dascalescu
1
如果系统路径可用,需要添加一些上下文来说明如何切换回节点的系统路径。否则,这将导致你无法使用npm i -g n 来重新安装 n - zedd45

3

最近n发生了一些变化,因此我将提供一个更新且更长的答案。

首先,n默认安装到/usr/local。如果这也是node和npm的“系统”安装位置,那么它将被覆盖。以前下载版本的缓存保存在/usr/local/n中。

删除由n下载的缓存节点版本:

  • n prune仅保留与当前节点版本匹配的版本
  • 自从n v3.0.0以来,可以使用n rm <version>删除活动版本
  • (但手动删除/usr/local/n也很容易且移除顶层文件夹!)

卸载已安装的节点、npm和npx等:

  • 自从n v4.1.0以来,有n uninstall。(如果它们安装到相同的位置并被覆盖,则需要重新安装系统节点和npm才能继续使用。)

卸载n本身:如果您使用npm install n安装了它,则可以使用npm uninstall n卸载它。这不会影响节点的缓存版本或已安装的节点版本,仅影响n。(如果只是通过运行n uninstall删除npm,则会有一个小的catch-22!)


-1

我使用的是mac OSX,所以我不确定这是否与您的使用情况相关,但它可能会有所帮助。

看起来如果您删除当前版本,n可能会遇到问题,因此建议您删除文件夹:/usr/local/n/

然后尝试卸载'n'。在我的情况下,运行npm uninstall -g n并没有删除n。相反,我需要通过运行which n找到当前安装的n,然后从系统中删除该文件夹。

然后,我建议您改用NVM。 我发现这是迄今为止最简单、最可靠的解决方案。

更具体地说,针对您关于如何访问系统安装的node的问题,我不知道您正在运行什么操作系统,但我不知道是否存在一个系统节点版本。

通常情况下,您必须手动安装 node。如果有一个“系统”node版本,我会预期它很快会过时,考虑到node和其他工具通常会迅速迭代更改。
希望这对您有用。

看起来如果你移除当前版本,n可能会遇到问题...这是什么意思?我没有移除当前版本。在我的情况下,npm uninstall -g n 成功地移除了 n。我的问题标记为 archlinux,所以我使用 Linux 作为操作系统。Archlinux 是一个滚动更新的发行版,所以我得到了最新的 Node.js,但这不是问题。我只想从 n 中移除当前的 Node.js 版本,以便之后可以移除 n - BuZZ-dEE

-1
运行 n-uninstall 命令来卸载 n 以及与其一起安装的 Node.js 版本。 n-uninstall -y 命令会跳过确认提示,使用时请谨慎。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接