升级 Node 后,出现“分段错误(核心转储)”错误。我该如何解决它?

问题描述 投票:0回答:5

我尝试按照 https://tecadmin.net/upgrade-nodejs-via-npm/ 的说明升级 Node。我做了

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
。 执行完上面的命令后,我傻乎乎地做了
sudo ln -sf /usr/local/n/versions/node/11.8.0/bin/node /usr/bin/node
。执行此命令后,我检查了
/usr/local/n/versions/node
文件夹。它有
10.15.3
,所以我输入了
sudo ln -sf /usr/local/n/versions/node/10.15.3/bin/node /usr/bin/node

现在,

node -v
给了我
10.15.3
。然而,
npm -version
给了我
Segmentation fault (core dumped)
。其他命令如
npm update -g
也给了我同样的错误消息。

有关

Segmentation fault (core dumped)
错误的其他帖子似乎与我的问题没有直接关系。

我该如何解决这个问题?

我使用的是 Ubuntu 19.04。

谢谢你。

node.js npm segmentation-fault
5个回答
29
投票

我刚才遇到了同样的问题, 这是因为node和nodejs的npm冲突

所以通过以下命令删除nodejs

sudo apt-get remove nodejs

这将删除所有与nodejs相关的包,

在上述命令之后,您必须像这样运行 autoremove 命令

sudo apt autoremove

这样就可以解决问题了

现在您的计算机中只有节点包,NPM(分段转储)错误也将解决。

您可以进一步挖掘什么是分段错误


4
投票

尝试运行

npm rebuild
重新编译您的依赖项。


1
投票

这是由编译的二进制文件与其链接的库之间的“二进制不兼容”引起的。我列出的可能导致此问题的因素是:

  • 升级nodejs,因为你需要从干净的状态重建代码
  • Docker,例如,如果您要将 node_modules 从 Mac 共享或复制到 Linux,或者从 Ubuntu 到 Alpine Linux
  • Docker 多阶段构建会忘记您在早期阶段拥有的库,除非您明确复制它们
  • Vagrant 的原因与 Docker 相同。偶然地,如果您在虚拟机内部和外部的相同版本上运行相同的 Linux 发行版,并且通过共享文件夹或卷共享 Node_modules(这在 Vagrant 上更常见),那么它可能会起作用。
最常用的简短修复是:

rm -rf node_modules
    


-3
投票
尝试运行以下两个命令

sudo apt --auto-remove purge npm sudo apt --auto-remove purge nodejs
执行这些命令后,npm 无需安装即可运行。

© www.soinside.com 2019 - 2024. All rights reserved.