You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04安装MyEtherWallet-v5.0.10时wrtc@0.2.1失败求助

解决Ubuntu 18.04安装MyEtherWallet-v5.0.10时wrtc@0.2.1失败的问题

我来帮你搞定这个头疼的安装问题——wrtc@0.2.1确实是个比较老的版本,和新Node版本的兼容性坑不少,咱们一步步来试这些方案:

方案一:手动指定可用的预编译包(解决404问题)

官方的wrtc@0.2.1预编译包可能已经下架了,导致下载返回404。你可以手动指定一个可用的预编译包地址,安装时加上环境变量:

首先先查一下你当前Node版本对应的ABI编号,执行:

node -p process.versions.modules

比如Node 8.17.0对应的是57,Node 10.24.1是64,Node 11.14.0是67。

然后把这个编号替换到下面的URL里,执行安装命令:

npm install MyEtherWallet-v5.0.10 --unsafe-perm --WITH_WEBRTC_BINARY=https://github.com/node-webrtc/node-webrtc/releases/download/v0.2.1/wrtc-v0.2.1-node-v{你的ABI编号}-linux-x64.tar.gz

--unsafe-perm是为了避免编译时的权限问题,必须加上。

方案二:降级到完全兼容的Node版本(解决编译参数不匹配)

wrtc@0.2.1对Node版本挑得很厉害,最兼容的是Node 8.17.0(这个版本的V8 API刚好和它的编译要求完全匹配)。你可以用nvm切换到这个版本:

nvm install 8.17.0
nvm use 8.17.0

切换完成后,清理一下npm缓存再安装:

npm cache clean --force
npm install MyEtherWallet-v5.0.10 --unsafe-perm

这个方法大概率能解决编译时的v8::Promise::Resolver参数不匹配问题,因为这个Node版本的V8接口就是wrtc@0.2.1开发时用的。

方案三:手动修改wrtc源码后编译(终极方案)

如果上面两个方法都不行,咱们就手动改源码适配:

  1. 先克隆wrtc的仓库并切到0.2.1版本:
git clone https://github.com/node-webrtc/node-webrtc.git
cd node-webrtc
git checkout v0.2.1
  1. 找到src/promise.cpp文件,里面用到v8::Promise::Resolver的地方,在Node 10+版本里构造函数需要传Isolate*参数,你需要把类似这样的代码:
auto resolver = v8::Promise::Resolver::New(context);

改成:

auto resolver = v8::Promise::Resolver::New(isolate, context);

(这里的isolate需要是当前的V8隔离实例,你可以在函数里找一下已经定义的Isolate* isolate变量)
3. 编译并本地链接wrtc:

npm install --unsafe-perm
npm link
  1. 回到MyEtherWallet的安装目录,链接本地的wrtc再安装:
npm link wrtc
npm install

前置准备:确保Ubuntu编译依赖齐全

无论用哪个方案,先把Ubuntu上的编译依赖装全,避免因为缺库失败:

sudo apt-get update && sudo apt-get install build-essential libssl-dev libuv1-dev libwebkitgtk-3.0-dev

内容的提问来源于stack exchange,提问作者SinTan1071

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:36:48