【问题标题】:Why only outdated version of NPM is available on Debian/Ubuntu?为什么在 Debian/Ubuntu 上只有过时版本的 NPM 可用?
【发布时间】:2022-01-08 10:04:27
【问题描述】:

我正在使用基于 Debian/Ubuntu 的发行版(特别是 AWS Ubuntu 16.04)并尝试通过 apt-get 安装 NPM。

我的 Angular 2 应用程序需要高于 3.9.x 的 NPM 版本,但在 AWS Ubuntu 16.04 上使用 sudo apt-get install npm 安装的默认版本是 3.5.2。我正在尝试更新 NPM,但它没有从 3.5.2 升级到 4.6.1(最新)。

如何安装/更新 NPM 以获得最新版本?

【问题讨论】:

    标签: node.js npm ubuntu-16.04


    【解决方案1】:

    在您的服务器 bash 上键入“hash -r”。

    然后再次检查您的“npm -v”

    【讨论】:

    • 谢谢你,先生,我疯了
    • 就是这样。完全疯了。
    • 这行得通,但是你有解释为什么吗?它将 /usr/local/bin/npm 中的符号链接更新为 ../lib/node_modules/npm/bin/npm-cli.js 但它是如何知道这样做的,或者出了什么问题?
    【解决方案2】:

    您将获得 3.5.2 版的 npm,因为这是 repositories 中的版本。 Debian 和 Ubuntu 在跟上 Node 和 npm 的快速开发速度方面通常糟糕,因此您经常会发现这些软件包已经过时,并且对您没有多大用处。

    一些 Debian 发行版(例如 Jessie)只有 npm v1.4.21,这更加过时了。顺便提一下,Debian Jessie 是 RPi 发行版 Raspbian Jessie 所基于的版本。

    请关注the instructions given on the Node.js website

    Node.js 可从 NodeSource Debian 和 Ubuntu 二进制发行版存储库(以前 Chris Lea 的 Launchpad PPA)获得。可以在 GitHub 的 nodesource/distributions 上找到对此存储库及其脚本的支持。

    注意:如果您使用的是 Ubuntu Precise 或 Debian Wheezy,您可能想了解在较旧的发行版上运行 Node.js >= 6.x。

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt-get install -y nodejs
    

    或者,对于 Node.js v7:

    curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
    sudo apt-get install -y nodejs
    

    NodeSource 提供的nodejs 包包含npm。只需安装它,您就可以使用最新版本了。

    【讨论】:

    • 我不认为他们在更新每个包方面都很糟糕。我想知道 node 和 v8 代码是否易于审计等。
    • 谢谢,我用https://deb.nodesource.com/setup_15.x
    【解决方案3】:

    升级 npm:

    $ sudo npm install -g npm@latest
    
    $ reboot
    
    $ npm -v
    

    完成安装:

    $ sudo apt install nodejs
    
    $ sudo apt install npm
    
    $ npm -v
    

    npm 版本:3.5.2

    然后升级:

    $ npm install -g npm@latest
    
    $ reboot
    
    $ npm -v
    

    【讨论】:

    • 'hash -r' 在你的 shell 中就足够了,而不是重新启动。
    【解决方案4】:

    sudo npm install -g npm

    对我有用,然后我需要@StefanBob 提供的答案

    【讨论】:

      【解决方案5】:

      试试这个

      sudo npm cache clean -f
      sudo npm install -g n
      sudo n stable
      

      【讨论】:

      • 哇,这很有效。你能解释一下n 以及为什么强制cache cleann stable 起作用吗??
      【解决方案6】:

      我已经阅读了这个答案,它在这个问题上帮助了我:

      https://askubuntu.com/questions/1036278/npm-is-incorrect-version-on-latest-ubuntu-18-04-installation

      希望对你也有帮助。

      $ sudo apt-get install npm
      (...apt installation of npm was successful...)
      $ npm -v
      3.5.2
      $ command -v npm
      /usr/bin/npm
      $ sudo npm install -g npm
      (...npm installation of npm was successful...so far, so good)
      

      之后,只需重新启动 bash 或按照 krubo 的步骤操作即可。

      【讨论】:

        【解决方案7】:

        @Nyakwar Dayo 的解决方案对我有用。

        sudo npm cache clean -f
        sudo npm install -g n
        sudo n stable
        

        但是 nodejs 包安装在不同的路径,我手动删除了旧包(/usr/bin/)并添加了一个符号链接指向新包(/usr/local/bin)。

        sudo rm /usr/bin/node
        sudo ln -s /usr/local/node /usr/bin/node
        

        这是运行命令的初始打印输出。 npm 版本从 5.8.0 更新为 8.1.2。但是nodejs 版本即使在使用hash -r 重新启动后仍保持在10.24.0

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-11
          • 2021-11-23
          • 2021-04-06
          • 2021-07-02
          相关资源
          最近更新 更多