最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

哪个节点给出了很奇怪的结果

运维笔记admin11浏览0评论

哪个节点给出了很奇怪的结果

哪个节点给出了很奇怪的结果

也许这看起来很傻,但是当我今天运行which node时,它给了我一些完全不同的东西

/home/hearen/xxx/xxx/node-v0.10.28/bin/node

而不是像

/usr/local/bin/node

但是,当我运行sudo which node时:

/usr/local/bin/node

我想知道这会怎么样?

My Silly Questions

  • which command如何找到命令的路径;
  • 哪个节点根据路径精确选择?怎么样?
  • 在我的情况下,我如何使用/usr/local/bin/node而不是当前奇怪的/home/hearen/xxx/xxx/node-v0.10.28/bin/node?只是重置路径就可以了?
  • 为什么sudo which node给了我正确的结果?我错过了什么?

任何帮助将不胜感激 :)

更多细节

nvm

$ 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)

echo $PATH

/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
回答如下:

Node Version Manager和类似软件包的工作方式是将node.js和一些包装脚本和/或symlinks的副本放在用户主目录中(默认情况下位于~/.nvm下),并将包含这些脚本的目录添加到PATH环境变量中。这通常通过修改shell启动脚本(即~/.bashrc或其他文件,具体取决于您选择的shell和当前配置)来完成。

当您使用sudo运行which node时,它显示不同路径的原因是您最有可能全局安装node.js,并且包含这些包装器脚本的目录不会添加到root用户的PATH环境变量中。

您可以通过比较以下命令的输出来确认:

echo $PATH

sudo echo $PATH

要使用全局安装的节点版本,可以从shell启动脚本中删除从nvm.sh获取的行(并注销并重新登录 - 这将永久禁用nvm)或重置PATH环境变量。

发布评论

评论列表(0)

  1. 暂无评论