我在CentOS 7上安装了nodejs时遇到了问题。
最初,我使用make
从源手动关注this instruction已安装节点的第一部分。
很快我意识到我安装了一个非常旧的版本节点,即v0.10.30。因此,我在node
中删除了与npm
和/usr/local/bin/
相关的所有内容,依此类推。
然后,我使用yum install nodejs
再次安装节点。这次,节点和npm自动安装在/usr/bin/node
中。
我并不关心node
和npm
的位置。但是,似乎系统对其位置感到困惑。见下面的输出
$ node
-bash: /usr/local/bin/node: No such file or directory
$ npm
-bash: /usr/local/bin/npm: No such file or directory
$ whereis node
node: /usr/bin/node /usr/share/node /usr/share/man/man1/node.1.gz
$ whereis npm
npm: /usr/bin/npm /usr/share/man/man1/npm.1.gz
$ which node
/usr/bin/node
$ which npm
/usr/bin/npm
$ /usr/bin/node -v
v6.12.2
$ /usr/bin/npm -v
3.10.10
我绝对不想每次都输入/usr/bin/node
。似乎系统知道node
在哪里,但为什么它坚持在先前位置/usr/local/bin/node
找到节点?
如何让系统了解node
和npm
的正确位置?
修改
我刚刚通过改变PATH中的顺序解决了这个问题。最初是:
PATH=/usr/local/bin:/usr/bin:...
现在我把它改成了
PATH=/usr/bin:/usr/local/bin:...
然后问题就解决了。
然而,如果node
中不存在/usr/local/bin
,为什么它坚持在那里找到它?我很担心还有一些我没有解决的问题,这些问题可能会在将来产生一些不良影响。