AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1306308
Accepted
flen
flen
Asked: 2021-01-09 14:34:01 +0800 CST2021-01-09 14:34:01 +0800 CST 2021-01-09 14:34:01 +0800 CST

使用 npm n 升级 nodejs 的缺点

  • 772

我的问题

有一些 对npm n. _ 批评还成立吗?n不稳定还是有陷阱?值得一提的是,n本周有 115,014 次下载。

问题

我想在 Ubuntu 20.04 上安装 npm和nodeJS 的最新稳定版本,但这非常困难。


有关的:

  • https://stackoverflow.com/questions/41666010/n-or-nvm-for-managing-node-versions-is-keeping-global-modules-for-each-version
  • https://stackoverflow.com/a/23569481/4621141
  • https://stackoverflow.com/a/41196107/4621141
  • https://askubuntu.com/a/663050/808646
  • https://askubuntu.com/a/1098249/808646
apt
  • 2 2 个回答
  • 293 Views

2 个回答

  • Voted
  1. Best Answer
    flen
    2022-04-18T21:02:57+08:002022-04-18T21:02:57+08:00

    判决书

    在运行了几年之后,我想我可以自信地说没有真正的问题(至少,我没有遇到它们)。唯一的问题是n开始工作。为此,请阅读下文。

    用 npm n 解决它

    我以具有 sudo 访问权限的用户身份安装它,我不想通过sudonpm 或 node 使其工作(为什么?)。

    1. 安装 npm: sudo apt install npm。

    2. 为 npm 设置前缀: npm config set prefix ~/.npm

    3. 将 npm 升级到最新版本,npm i -g npm.

    4. 在文件中设置环境变量~/.profile(这些更改仅在您注销并再次登录后或运行时才有效source ~/.profile):

    # vars to avoid ever using sudo
    # for npm
    export PATH="$PATH:$HOME/.npm/bin"
    # these are for n and where it'll install nodejs:
    export N_PREFIX=$HOME/.n
    export PATH="$PATH:$N_PREFIX/bin"
    
    1. 使用 npmn包升级节点(参见:https ://askubuntu.com/a/663052/808646 ):
    # Intructions: https://www.npmjs.com/package/n
    # Some people also suggest npm cache clean -f, but (I think) this isn't necessary here. 
    # I'm using lts for the stable release, for the latest use instead: n latest 
    
    npm install -g n
    n lts
    
    1. 运行source ~/.profile以更新环境变量。这样 bash 将在此会话期间找到路径(即npm,n无需注销然后再次登录)。

    2. 卸载以前由 npm 安装的 nodejs: sudo apt-get purge nodejs。

    解释:这一步很关键。到目前为止,这就是发生的事情:您安装了npm,但它实际上安装了 oldnodejs和 old npm。尽管您据称“安装”了新的nodejsusing n,但nodejs前者优先且n不能真正安装nodejs它下载的新的,您必须先删除旧的。
    但是,如果你在不安装新的情况下删除它npm,你将不再拥有npm,因为卸载旧的nodejs卸载npm也旧的(我认为......或者如果你只是再次导出所有变量,它可以工作吗?也许只是n安装了 nodejs/npm版本就够了吗?)。因此,您必须安装新的npm(您在第 3 步中执行了此操作)和新的nodejs使用n(您在第 6 步中执行了此操作),然后再卸载旧的nodejs. 您还需要新nodejs安装的原因是,如果没有 new nodejs, newnpm将无法运行,它需要当前nodejs安装。

    1. 检查它是否有效。如果没有,请尝试注销并再次登录,或者输入n并选择正确的 nodejs 版本(*默认情况下,它将使用与该 nodejs 版本捆绑的 npm,但有一些选项可以防止这种情况发生):node -v
    • 1
  2. Bob Kline
    2022-04-15T04:01:11+08:002022-04-15T04:01:11+08:00

    Runningsudo apt install npm工作正常,但sudo apt-get --purge remove nodejs也会删除npm,让你回到开始的地方。所以我看不出有任何方法可以使用非 apt 方法安装最新版本的nodejs.

    • 0

相关问题

  • 如何编写 shell 脚本来安装应用程序列表?

  • 如何查看存档中可用的软件包的所有版本?

  • 是否可以说出我安装的哪些软件包不在原版安装中?

  • 如何删除 PPA?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve