【Electron】中标麒麟系统下使用electron构建linux应用程序的问题

系统信息:

中标麒麟  linux/mips64el  
版本信息:
    版本 NeoKylin-Desktop-7.0-loongson_64-Release-B037/20170707
    内核 Linux 3.10.0
系统信息:
    安装内存: 4.00G
    系统类型:64位系统
    处理器: Loongson-3A R3(Loongson-3A30000) @ 1400MHz @ 1.4GHz 4核
 Electron
    版本:v4.0.6
    chrome:69
    全局electron_v4.0.6 是通过rpm -ivh electron-v4.0.6-linux-mips64el.rpm安装,所在目录/usr/lib64/electron_v4.0.6

问题1:

问题描述:使用electron-packager版本构建 linux/mips64el包错误提示

打包命令

electron-packager . appname --platform=linux --arch=mips64el --electron-version=4.0.6 --no-prune --out=build/release-builds --icon=build/icons/256x256.png --overwrite

做rpm包命令

electron-installer-redhat --src build/release-builds/app-linux-mips64el --dest build/installers --arch mips64el --config config.json

错误信息:

WARNING: Official linux/mips64el support only exists in Electron ^1.8.2-beta.5

解决方法:

修改文件:/usr/lib/node_modules/electron-packager/targets.js

注释掉上面的判断,让它检测缓存已经有了;

手动将对应版本的zip包放到缓存目录中(linux: ‘~/.cache/electron’)

并在SHASUM256.txt中加上对应的校对码(校对码:sha256sum xx/xx/xx/xxx.zip)

问题2:

问题描述:

        应用程序构建成功后,会出现程序运行大概5秒后立即退出的现象

问题分析:

        当前系统中nss版本过低(nss-3.22),而chrome69需要的版本是>=nss-3.26

解决方法:

        通过 yum install nss 命令,从龙芯yum源更新nss版本(nss-3.28)

        查看当前系统nss版本命令:sudo rpm -ql |grep nss-3*

问题3: 

问题描述:

        程序启动成功后,键盘键入时应用进程立即被关闭

解决方法:

        目前有两种解决方案:

                1、将libfreetype.so.6 放入/usr/lib64/electron-4.0.6/ 执行svoc时, 需要 export                 LD_LIBRARY_PATH=/usr/lib64/electron_v4.0.6/

                2、直接替换系统/lib64下面的libfreetype.so.6

                相关命令 sudo cp libfreetype.so.6.14.0 libfreetype.so.6

问题4: 

问题描述:

        由于其他用户电脑系统中nss版本(nss-3.22)过低以及缺少libfreetype.so文件,导致打包成功后的rpm包在电脑上运行时会出现闪退和无法键入的问题

解决方法:

        将应用所需要的nss版本相关的so文件和libfreetype.so文件直接打包到rpm包里,应用启动时直接连接打包的库,而不指向系统库。

比如electron安装包里就有诸如libffmpeg.so,它直接指向自己的而不会去调系统的ffmpeg。

nss的so文件从已安装的/usr/lib64目录下找:

/usr/lib64/libsnss3.so
/usr/lib64/libnssckbi.so
/usr/lib64/libsmime3.so
/usr/lib64/libssl3.so
/usr/lib64/libnssutil3.so

libfreetype文件:

/usr/lib64/libfreetype.so.6

将以上文件从/usr/lib64目录下 拷贝到项目的源文件中(如:/home/casic/electron-demo/webrtc-pc-new/build/app/svoc-linux-mips64el/)

猜你喜欢

转载自blog.csdn.net/u013910042/article/details/126265864