与命令不一致

与命令不一致

我正在使用n工具来更新我当前版本的节点,但发生了一些奇怪的事情。

我运行了sudo n latest该程序,理论上会获取最新版本的 Node(v0.12.0并将其安装在我的某个地方)$PATH

但是,运行node -v显示v0.10.25。我认为在我的路径上的其他地方还有另一个版本的 node exe。

which node显示/usr/local/bin/node

$ cd /usr/local/bin/node
$ node -v
v0.10.25
$ ./node -v
v0.12.0

它就在那里,安装好了,/usr/local/bin就在我的上面$PATH

在什么情况下会which指向错误的二进制文件?

/bin我已重新启动 bash,并确保或中没有无效节点二进制文件/usr/bin。还确保它不是符号链接。

$ ls -lah | grep node
-rwxr-xr-x  1 root root  20M Feb 14 14:56 node

而且它确实是二进制的。

$ file node
node: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

有想法吗?

答案1

您寻找复杂的解决方案却忽略了显而易见的东西。

我切换到zsh查看问题是否出在 bash 上。节点版本是正确的。

我曾alias node=nodejs~/.bash_aliases......

显然which没有考虑到这一点。我认为 Ubuntu 上 Node 的 apt-get 包存在一些问题,它创建了nodejs二进制文件而不是node。显然我给它起了别名,而不是符号链接。

学过的知识。

相关内容