对于mediasoup的编译要求,可以参考:https://mediasoup.org/documentation/v3/mediasoup/installation/
在解决了gcc和python的问题后,由于mediasoup的编译使用的nijia meason,于是使用npm install初始化项目模块的时候,只要执行到mediasoup的安装,总是会报:<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)>的错误(曾经cent os 7也会报相同的错误,于是为了防止麻烦迁移到了ubuntu)。
经测试,以下的方法皆无法解决上述问题:
- 更新系统的根证书:
sudo yum reinstall ca-certificates,无效; - 手动指定使用的SSL证书路径:
export SSL_CERT_FILE=/path/to/cacert.pem,无效; - 全局禁用SSL验证:
export PYTHONHTTPSVERIFY=0,无效;
之后只能通过修改源代码的方式解决,步骤如下:
1、下载mediaosup源码并检出到node所使用的依赖分支
git clone https://github.com/versatica/mediasoup.git
cd mediasoup
git checkout 3.12.6
2、开始预编译,并等待报错信息出现:
cd worker
make mediasoup-worker # 或者直接执行make
3、修改meason源代码:
打开out/pip/mesonbuild/wrap/wrap.py,并添加以下python代码:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
4、重新执行make,等待编译完成;
5、编译成功后,最后输出文件位于out/Release/mediasoup-worker,可以通过ldd mediasoup-worker查看所需要的动态库情况。
如果不想下载源代码,也可以在npm install时,添加--ignore-scripts参数,这样会将node项目的依赖下载到本地,而不是因为先执行包内的脚本导致依赖包无法下载。等执行完成后,在手动进入node_modules的mediasoup目录手动执行编译,方式与上述第2步及以后一致。
DISCUSSION
评论
还没有公开评论,欢迎留下想法。