升级节点后,出现“分段故障(核心已转储)”错误。我该如何解决?

时间:2019-05-09 00:11:48

标签: npm segmentation-fault

我正在尝试按照https://tecadmin.net/upgrade-nodejs-via-npm/中的说明升级Node。我做了sudo npm cache clean -fsudo npm install -g nsudo 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。

谢谢。

3 个答案:

答案 0 :(得分:1)

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

因此请通过以下命令删除nodejs

sudo apt-get remove nodejs

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

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

sudo apt autoremove

这将解决问题,

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

您可以进一步了解What is segmentation fault

答案 1 :(得分:0)

尝试运行npm rebuild重新编译您的依赖项。

答案 2 :(得分:0)

这是由编译的二进制文件和它们链接的库之间的“二进制不兼容”引起的。我列出的可能导致这种情况的事情

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

最常用的简短修复:

rm -rf node_modules