这似乎很愚蠢,但是今天当我运行which node
时,它给了我与
/home/hearen/xxx/xxx/node-v0.10.28/bin/node
代替
/usr/local/bin/node
但是当我运行sudo which node
时:
/usr/local/bin/node
我想知道这怎么可能?
which command
如何为命令定位路径; /usr/local/bin/node
而不是当前的怪异/home/hearen/xxx/xxx/node-v0.10.28/bin/node
?只需重置路径就能解决问题?sudo which node
给我正确的结果?我错过了什么吗? 任何帮助将不胜感激:)
$ nvm --version
0.33.0
$ nvm list
v6.6.0
v9.1.0
-> v10.10.0
system
default -> 6.6.0 (-> v6.6.0)
node -> stable (-> v10.10.0) (default)
stable -> 10.10 (-> v10.10.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.16.0 (-> N/A)
lts/carbon -> v8.15.0 (-> N/A)
lts/dubnium -> v10.15.1 (-> N/A)
/home/hearen/.nvm/versions/node/v10.10.0/bin:/home/hearen/XXX/XXX/oracle-jdk-1.8.0_121/bin:/home/hearen/XXX/XXX/apache-maven-3.3.1/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/mysql-5.6.39/bin:/home/hearen/XXX/XXX/yosolo-0.0.1-SNAPSHOT:/opt/mozjpeg/bin:/home/hearen/XXX/XXX/git-lfs-2.4.0:/home/hearen/XXX/WorkSpace/Develop/bin:/home/hearen/bin:/usr/local/bin:/usr/bin:/bin:/sbin:/home/hearen/.local/bin:/opt/jdk1.8.0_144/bin:/home/hearen/XXX/XXX/oracle-jdk-1.8.0_121/bin:/home/hearen/XXX/XXX/apache-maven-3.3.1/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/mysql-5.6.39/bin:/home/hearen/XXX/XXX/yosolo-0.0.1-SNAPSHOT:/opt/mozjpeg/bin:/home/hearen/XXX/XXX/git-lfs-2.4.0:/home/hearen/XXX/WorkSpace/Develop/bin:/home/hearen/bin:/usr/local/bin:/usr/bin:/bin:/sbin:/home/hearen/bin:/home/hearen/.local/bin:/opt/jdk1.8.0_144/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
答案 0 :(得分:1)
Node Version Manager和类似软件包的工作方式是将node.js的副本以及一些包装脚本和/或symlink放在用户主目录(位于{{1下}}(默认情况下),然后将包含这些脚本的目录添加到您的 PATH 环境变量中。通常可以通过修改您的Shell启动脚本(即~/.nvm
或其他文件,具体取决于您选择的Shell和当前配置)来完成此操作。
使用 sudo 运行~/.bashrc
时显示不同路径的原因是,您很可能已全局安装了 node.js ,并且该目录包含了这些目录包装脚本不会添加到 root 用户的PATH环境变量中。
您可以通过比较以下命令的输出来确认这一点:
which node
和
echo $PATH
要使用节点的全局安装版本,可以从Shell启动脚本中删除源sudo echo $PATH
的行(然后注销并重新登录-这将永久禁用nvm)或重置PATH环境变量。