如何在无root权限的Ubuntu 18.04.3中彻底移除Node.js?
解决无root权限Ubuntu 18.04.3下彻底移除Node.js的问题
首先得理清逻辑:你无root权限下的Node.js肯定不是通过系统apt安装的——不然root下能找到命令,apt remove也不会提示找不到包。大概率是你用nvm、手动解压/编译安装到用户目录,或是用npm的n模块装的。下面分情况一步步操作:
第一步:先定位Node的安装位置
在普通用户终端里执行这条命令,拿到Node可执行文件的路径:
which node
输出可能是~/.nvm/versions/node/v10.12.0/bin/node或者~/local/node/bin/node这类,根据路径就能判断你的安装方式。
情况1:用nvm安装的Node.js(最常见的无root安装方式)
先确认是不是nvm管理的:
nvm --version
如果输出了版本号,说明是nvm装的,移除步骤如下:
- 卸载当前的v10.12.0版本:
nvm uninstall v10.12.0 - 要是想彻底移除nvm和所有Node版本:
- 删除nvm的核心目录:
rm -rf ~/.nvm - 打开你的shell配置文件(比如
~/.bashrc、~/.zshrc,看你用的是什么shell),删掉里面关于nvm的加载代码,比如:export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion - 重新加载配置文件生效:
source ~/.bashrc
- 删除nvm的核心目录:
情况2:手动解压/源码编译安装到用户目录的Node.js
如果which node输出的路径是~/node/bin/node或者~/local/bin/node这类,说明是你手动安装到用户目录的:
- 删除整个Node安装目录(比如路径是
~/node/bin/node,那安装目录就是~/node):rm -rf ~/node # 替换成你实际的安装目录路径 - 检查shell配置文件(
~/.bashrc、~/.bash_profile等),找到把Node的bin目录加到PATH的行,比如:
删掉这一行后重新加载配置:export PATH="$HOME/node/bin:$PATH"source ~/.bashrc - 清理npm的缓存和配置文件:
rm -rf ~/.npm rm -rf ~/.node-gyp rm -f ~/.npmrc
情况3:用npm的n模块安装的Node.js
如果你之前用npm install -g n安装过n模块来管理Node版本:
- 先卸载指定的v10.12.0版本:
n uninstall v10.12.0 - 卸载
n模块本身:npm uninstall -g n - 再按照情况2的步骤清理npm缓存和配置文件。
验证移除是否彻底
执行以下命令,如果都提示command not found,就说明已经彻底移除干净了:
node -v npm -v which node which npm
补充说明下你遇到的其他问题:root下找不到Node是因为你在普通用户目录安装的,root的PATH里没包含这个路径;apt remove失败是因为系统根本没通过apt安装Node,所以apt找不到对应的包,这都是正常现象。
内容的提问来源于stack exchange,提问作者Allen P Biju
相关产品推荐
相关产品推荐

