0

我做了以下事情:

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 不是很熟悉,但我正在学习……对不起,如果我遗漏了“明显”的东西。)

4

4 回答 4

1

我通过放弃使用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
于 2019-10-29T18:45:44.823 回答
0

1)尝试打开一个新的shell并检查你在那里看到的节点版本。

n默认情况下将节点二进制文件安装到/usr/local/bin/node. 您可能已经安装了一个 node 二进制文件/usr/bin/node,并且您的已知命令(路径)的 shell 缓存可能正在运行旧的。

bash 问题示例:https ://github.com/tj/n/issues/588

2)如果您的操作系统有该命令,您可以运行which -a node以查看您是否有多个版本以及它们的安装位置。(卸载您不想要的可以减少混淆的可能性。)

3) 检查预期版本的位置是否在您的 PATH 中。如果您正在使用n,请尝试运行n doctor。有一些额外的检查来确定找到的节点版本是n安装的那个版本。

于 2019-10-30T00:56:13.983 回答
0

这很奇怪……

你能试试吗?

mv /usr/local/bin/node /usr/local/bin/node.back
which node
mv /usr/local/bin/node.back /usr/local/bin/node

我只想看看which如果你删除旧的节点版本二进制文件会产生什么。

还提供有关 file 的更多信息/usr/local/bin/node,它是符号链接吗?如果是真的,是什么?

于 2019-10-29T18:09:27.543 回答
0

无法发表评论,但尝试用/usr/bin/node符号链接替换/usr/local/bin/node​​. 前段时间有类似的问题,吃了我的大脑。就这样解决了。

PS别忘了备份

于 2019-10-29T18:10:41.770 回答