Ubuntu 19.04 nodejs 和 npm 无法运行并显示 Aborted(核心转储)

Ubuntu 19.04 nodejs 和 npm 无法运行并显示 Aborted(核心转储)

我在通过以下方式删除后重新安装了 nodejs 和 npm

apt install nodejs
apt install npm

但如果我把

npm -v

我收到中止错误和核心转储

 1: 0x948a70 node::Abort() [node]
 2: 0x997982 node::options_parser::GetOptions(v8::FunctionCallbackInfo<v8::Value> const&) [node]
 3: 0xba5e0a  [node]
 4: 0xba69b9 v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) [node]
 5: 0x99aae14fc5d
Aborted (core dumped)

我已经更新、升级、重新启动等,但它就是不起作用。

node --version

出现分段错误

v11.8.0
Segmentation fault (core dumped)

我使用 n 安装了 node 11.8 后卸载了 npm,但不知何故它似乎正在启动,所以我猜 npm 的依赖项有问题?

答案1

发生这种情况是因为 Node 和 Node.js 的 npm 版本冲突。您可以尝试使用以下命令删除 Node.js:

sudo apt-get remove nodejs

之后,您需要运行 autoremove 命令来删除任何不再需要的剩余依赖项:

sudo apt autoremove

运行这些命令应该可以解决问题。

答案2

是的,我添加了一个修正,现在看到一条评论暗示了原因,让我澄清一下我的错误。这真是太混乱了。

如果你运行 node,你会得到“哪个 nodejs”指向的 /usr/bin/nodejs 版本,但如果你询问“哪个节点”,你会得到 /usr/local/bin/node

这种混淆可能是 npm 失败的原因,因为它使用了错误版本的节点。

开箱即用的 apt list nodejs 显示 nodejs/disco 10.15.2~dfsg-1 amd64,而哪个节点或哪个nodejs并调用它都出现缺失未找到的情况。

在 apt install npm 之后我得到这些结果,其中 npm = /usr/bin/npm

npm -v = 5.8.0

哪个节点 = /usr/bin/node

哪个 nodejs = /usr/bin/nodejs

节点 --version = v10.15.2

nodejs --version=v10.15.2

接下来我通过 npm install -gn 安装“n”,并添加 n 11.8.0,这是唯一对我来说仍然正常工作的版本。

所有节点仍然指向 10.15.2,但它安装到 /usr/local/n/versions/node/11.8.0

它的 bin 中有节点和 npm 的链接

npm->../lib/node_modules/npm/bin/npm-cli.js

因此‘n’没有正确安装版本。

我想我最终会从 nodejs 下载链接手动获取(我选择的 node 版本,也就是最后一个真正能用的版本)node-v11.8.0-linux-x64,并构建一个正确的安装程序 [复制并链接起来]。我只是也用它来开发,而且有 npm 和“n”很方便,但它不起作用,所以?

相关内容