关于使用 Electron 搭建Linux桌面应用遇到的一些问题

539 阅读2分钟

前一段时间使用 Electron 搭建了一个应用,需要安装在新搭建的 Ubuntu 系统中,在打包到安装、再到应用的正常使用的这一过程中遇到了比较多的问题,话不多说,来看看都有哪些问题。

1.打包linux的deb包报错

第一次打包时是在windows系统上打包报错了,经查需要在linux系统上打包才行,然后我把代码放到了新搭建的Ubuntu系统上,再打包时遇到了网络错误,后来修改了一下electron-builder的镜像地址就可以了。

npm config set electron-builder-binaries_mirror https://npm.taobao.org/mirrors/electron-builder-binaries/

2.安装deb包报错

在安装时出现报错,例如下面这些等等之类的报错,基本上都是因为没有安装对应的依赖导致的。

1.libnss3.so: cannot open shared object file: No such file or directory
2.libcups.so.2: cannot open shared object file: No such file or directory
...
或者
1.Package libnotify4 is not installed
2.Package xdg-utils is not installed
...
解决:

只要把报错内容列出来的依赖安装一下即可,如:apt install libnss3。依赖比较多需要一个个下载,或者使用apt-get -f install命令它会自动帮你下载。 但是为了后续方便维护后依赖的版本的统一(有些依赖库会不定时更新),所以我将所缺少的依赖用 apt-get download libnss3 下载到本地,再统一安装。

3.启动应用

安装完成后发现启动不了应用,经查是因为系统中没有图形界面处理器之类的东西,所以需要安装一个图形界面处理器,这里用的是openbox以及Xinit。使用命令安装:

apt install openbox xinit

安装完成后配置一下openbox的文件

mkdir -p ~/.config/openbox
cp /etc/xdg/openbox/* ~/.config/openbox/
cp /etc/X11/xinit/xinitrc ~/.xinitrc
echo 'ecex openbox-session' >> ~/.xinitrc

然后使用命令启动openbox:startx 这时openbox就运行起来了,但是应用还没有启动,所以需要修改一下 ~/.config/openbox/autostart 文件,添加启动应用的命令,如:

# 设置环境变量
DISPLAY=:0
# 启动应用
myDesktop

结语

从打包到安装再到应用的正常运行,这一个过程真的遇到了非常多的问题,上面这些只是贴出来的一小部分,还有一些没有记录下来,而且需要查阅非常多的资料才能去解决,这个过程真的不易,继续努力吧。