我做了以下操作:
user@machine:~$ sudo n stable
installed : v12.13.0 (with npm 6.12.0)
user@machine:~$ node --version
v8.10.0
user@machine:~$ which node
/usr/local/bin/node
user@machine:~$ /usr/local/bin/node --version
v12.13.0
我本来希望安装v12.13.0,但node --version
显示了v8.10.0。
我做错了什么?如何安装v12.13.0?仅供参考,我在Jetson Nano上,我真的只是想安装LTS Nodejs,不知道怎么安装。
顺便说一句,如果我做sudo apt-get install nodejs
,我只得到v8.10.0。
更多信息:
user@machine:~$ node --version
v8.10.0
user@machine:~$ sudo node --version
v12.13.0
似乎sudo
以某种方式影响了这一点?
(我对linux不是很熟悉,但我正在学习……很抱歉,如果我错过了"显而易见"的东西。(
我放弃使用n来解决这个问题。
以下是如何直接从nodejs.org上的dist进行安装
wget https://nodejs.org/dist/v12.10.0/node-v12.13.0-linux-arm64.tar.gz
sudo tar -xf node-v12.13.0-linux-arm64.tar.gz --directory /usr/local --strip-components 1
无法发表评论,但尝试用指向/usr/local/bin/node
的符号链接替换/usr/bin/node
。不久前也有类似的问题,吞噬了我的大脑。就这样解决了。
p.S别忘了备份
这很奇怪。。。
你能试试吗?
mv /usr/local/bin/node /usr/local/bin/node.back
which node
mv /usr/local/bin/node.back /usr/local/bin/node
我只是想看看如果删除旧的节点版本二进制文件,会产生什么which
。
还要提供更多关于文件/usr/local/bin/node
的信息,它是一个符号链接吗?如果是真的,对什么?
1(试着打开一个新的shell并检查您在那里看到的节点的版本。
n
将节点二进制文件默认安装为/usr/local/bin/node
。您可能已经在/usr/bin/node
中安装了节点二进制文件,并且已知命令(路径(的shell缓存可能正在运行旧命令。
bash问题示例:https://github.com/tj/n/issues/588
2( 如果您的操作系统有该命令,则可以运行which -a node
来查看是否有多个版本以及它们的安装位置。(卸载你不想要的可以减少混乱的可能性。(
3( 检查预期版本的位置是否在您的PATH中。如果您正在使用n
,请尝试运行n doctor
。还有一些额外的检查,以确定找到的节点版本是n
安装的版本。