【问题标题】:How do I find the old version of node js?如何找到旧版本的node js?
【发布时间】:2018-04-13 04:09:42
【问题描述】:

我正在尝试安装“n”,它是 Amazon Linux 上的 nom 助手。我有困难。似乎我在某个地方有一个旧版本的节点,但我不知道在哪里。当我跑步时

npm install -g n

我收到以下错误...

[myuser@mymachine ~]$ sudo /usr/local/bin/npm install -g n
ERROR: npm is known not to run on Node.js v0.10.48
You'll need to upgrade to a newer version in order to use this
version of npm. Supported versions are 4, 6, 7, 8. You can find the
latest version at https://nodejs.org/
[myuser@mymachine ~]$ npm -v
5.4.2


   ╭─────────────────────────────────────╮
   │                                     │
   │   Update available 5.4.2 → 5.5.1    │
   │     Run npm i -g npm to update      │
   │                                     │
   ╰─────────────────────────────────────╯

但请注意,当我跑步时

[myuser@mymachine ~]$ node -v
v8.8.1

它告诉我我已经安装了 v8.8.1,这是我想要的。如何清除旧的、不需要的节点版本以便安装我的帮助程序?

【问题讨论】:

  • 你试过nvm吗?
  • 很明显的问题,但是您在/local 中使用了npm 的绝对路径,但node 却没有使用。您可能安装了两个版本吗?
  • 我使用了长版本,因为当我运行“sudo npm install -g n”时,我收到了“找不到命令”错误。我通过运行“which npm”找到了 npm 的路径。
  • 在命令行中运行which node的结果是什么?
  • 结果是“/usr/local/bin/node”。

标签: node.js linux npm amazon-linux


【解决方案1】:

通过 apt 安装 Node.js 的另一种方法是使用专门设计的工具 nvm,它代表“Node.js 版本管理器”。

使用 nvm,您可以安装多个独立的 Node.js 版本,这将使您能够更轻松地控制您的环境。它可以让您按需访问最新版本的 Node.js,但也可以让您定位您的应用可能依赖的先前版本。

首先,我们需要从我们的 Ubuntu 存储库中获取软件包,以便我们构建源代码包。 nvm 脚本将利用这些工具来构建必要的组件:

sudo apt-get update
sudo apt-get install build-essential libssl-dev

安装必备软件包后,您可以从项目的 GitHub 页面下载 nvm 安装脚本。版本号可能不同,但一般情况下可以用curl下载:

curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh

并使用 nano 检查安装脚本:

nano install_nvm.sh

使用 bash 运行脚本:

bash install_nvm.sh

它会将软件安装到您的主目录 ~/.nvm 的子目录中。它还会将必要的行添加到您的 ~/.profile 文件中以使用该文件。

要访问 nvm 功能,您需要注销并重新登录,或者您可以获取 ~/.profile 文件,以便您当前的会话了解更改:

source ~/.profile

现在您已经安装了 nvm,您可以安装独立的 Node.js 版本。

要找出可供安装的 Node.js 版本,您可以键入:

nvm ls-remote

输出

...
         v5.8.0
         v5.9.0
         v5.9.1
        v5.10.0
        v5.10.1
        v5.11.0
         v6.0.0

如您所见,撰写本文时的最新版本是 v6.0.0。您可以通过键入以下内容进行安装:

nvm install 6.0.0

通常,nvm 会切换到使用最近安装的版本。您可以通过键入以下内容明确告诉 nvm 使用我们刚刚下载的版本:

nvm use 6.0.0

当您使用 nvm 安装 Node.js 时,可执行文件称为 node。您可以通过键入以下内容查看 shell 当前使用的版本:

 node -v
 Output
 v6.0.0

如果您有多个 Node.js 版本,您可以通过键入以下内容查看安装的内容:

nvm ls

如果您希望默认其中一个版本,您可以键入:

nvm 别名默认 6.0.0

新会话产生时将自动选择此版本。您也可以像这样通过别名引用它:

nvm 使用默认值

每个版本的 Node.js 都会跟踪自己的包,并有 npm 可用于管理这些包。

【讨论】:

  • 谢谢,但我不想使用 nvm。我想弄清楚为什么我当前的安装不起作用。还有另一个节点版本……需要弄清楚如何找到它。
  • 执行 node -v 如果安装会显示版本,然后我会告诉你剩下的步骤
【解决方案2】:

查看节点https://nodejs.org/en/download/releases/的发布说明,您可以从该站点下载旧版本

【讨论】:

    【解决方案3】:

    最简单的解决方案是尝试以下方法来清理您的节点问题并重新安装干净的版本。

    先删除所有与节点相关的东西

    sudo apt-get purge --auto-remove nodejs npm
    

    百胜更新:

    yum clean all
    yum -y remove nodejs
    

    同时删除这些剩余的文件和文件夹

    sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp /opt/local/bin/node opt/local/include/node /opt/local/lib/node_modules 
    

    然后用 nvm 重新安装 node,

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
    
    //To uninstall a node version 
    //nvm uninstall <current version>
    
    nvm install 8.8.1
    
    nvm use 8.8.1
    
    //check with 
    node -v
    npm -v
    
    
    //**UPDATE**: Install your package
    npm install -g n
    

    一切都应该工作。

    更新:在没有 NVM 的情况下安装

    yum install -y gcc-c++ make
    curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -
    
    yum install nodejs
    node -v
    
    //Install your package
    npm install -g n
    

    【讨论】:

    • 根据我的问题,我正在运行 Amazon Linux,因此您列出的第一个 ocmmand 失败并显示输出“sudo: apt-get: command not found”
    • 所以我注意到您正在使用“nvm”,而我试图让它与“npm”和“node”一起使用。你知道为什么我的“npm”命令失败了吗?我用的Linux版本是不是不能运行这样的命令?
    • npm 应该可以工作,因为系统没有其他问题。但是单独使用 npm 以后可能会再次遇到同样的问题,使用 nvm 可以更轻松地使用单个命令管理多个版本的节点,并且包损坏的可能性很小。
    • 我想直接解决这个问题,而不是寻找解决方法。如何找出 npm 不起作用的原因?
    • @Dave,nvm 确实安装了 npm。没有它,节点就无法工作(nvm!= npm)。 nvm 更像是专门用于管理多个节点版本的 apt 或 yum。当您使用nvm install 时,它只是以更易于管理的方式安装节点,nvm 与 npm 几乎没有关系。您可以在 curl 命令后使用 npm -v 进行检查。我们只是使用 nvm 来管理节点,您必须继续使用 npm 来完成所有其他任务,例如安装包。但为了获得更多信息,我将添加如何在没有 nvm 的情况下安装和更新 node 和 npm。
    猜你喜欢
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多