【问题标题】:How to install node.js如何安装 node.js
【发布时间】:2019-10-29 17:58:48
【问题描述】:

我做了以下事情:

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

【问题讨论】:

  • sudo apt-get install nodejs 我感觉你正在使用 linux(debian distro) 对
  • 您可能安装了多个node,或者node 的某种别名?检查您的路径中的/usr/local/bin 是否比其他路径更早。
  • @kellymandem 我在 Jetson Nano 上。所以我猜是的。这是Linux,ARM。 Linux version 4.9.140-tegra (buildbrain@mobile-u64-3561) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Mon Aug 12 21:16:23 PDT 2019
  • @tadman,显然类似的事情可能会发生。我该如何解决?
  • ATTN:downvoter,请告诉我如何改进问题。

标签: node.js n


【解决方案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

【讨论】:

    【解决方案2】:

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

    P.S别忘了备份

    【讨论】:

      【解决方案3】:

      很奇怪……

      你能试试吗?

      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 的更多信息,它是符号链接吗?如果是真的,那是什么?

      【讨论】:

      • 显示/usr/bin/node,即v8.10.0。我想你可能正在做某事。我该如何解决?
      • 好吧,我对n stable 一无所知,但它似乎是一个版本管理器......也许你应该看看他们的文档。因为你显然有一个小问题。或者只是按照@Rustan 在他的解决方案中提出的建议,而不是漂亮但有效:) 另一个很好的解决方案可能是删除 NodeJS 和您的版本管理器,然后转到 Node 版本管理器(NVM)......很棒的工具
      • /usr/local/bin/node 是 v12.13.0 节点,它是一个实际的文件,而不是一个链接。
      【解决方案4】:

      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 安装的那个版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-27
        • 2015-02-13
        • 1970-01-01
        • 2011-04-27
        • 2011-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多