1.前言
在UOS系统下,deb软件包是可以安装使用的,像linux安装包appimage是无法直接运行的。
这两天感觉掉进坑里了,项目基于Electron+react hooks,之前一般是打包成Windows下的.exe文件,双击启动就好了。
后面说要在linux下运行,于是安装虚拟机,安装linux的ubuntu系统,为啥这么搞呢,是因为在Windows系统下Electron不支持打包成linux…经过一点小坑后最终测试成功
结果后面又要求在统信操作系统(UOS国产操作系统)下运行,我寻思这不就是套壳linux嘛,于是就把之前测试的linux ubuntu下的文件拿过来寻思直接用,结果进了坑了,首先双击无法运行,命令行执行也毫无反应,再就是人家UOS系统也不支持我那个文件类型(appimage)…好在现在问题都解决了,特来总结。以下是经过各种坑后总结出来的直接有效的方法。
2.解决双击、点击、无法安装、无法运行程序的方法
先说一下哈,我这是linux系统的Appimage文件,思路是修改electron-builder的配置文件和package.json配置文件,如果你不会用Electron打包成linux的可以留言问我。
原因:
是因为UOS系统的安全策略,只需要两步:
第一,以管理员身份运行
第二,关闭沙盒(sandbox)即可
可以在终端输入以下命令
// 1,管理员身份运行 su root //2.关闭沙盒 ./你的文件名称 --no-sandbox
至此,他会自动打开软件。
小结:
其实现在想来这一步没啥用,毕竟不能让客户每次命令行输入,所以还是要把软件转换成符合UOS系统的软件,也就是Deb文件,这是一种可以直接安装的,也是交付给客户的最终文件,让他们自己安装就完事了。
3. 将appimage文件转为deb文件
说明一下,appimage文件是linux下的安装包,deb是UOS系统下的安装包,在UOS系统下,直接安装运行是无反应的,我们需要转换成deb软件包。如果你也要将项目交付给使用UOS系统的客户,只需要把这个deb软件包发给他们即可。
3.1 方法:
在UOS系统下,下载安装appimage2deb软件,然后按照下面图片的步骤即可。
3.2 下载appimg2Deb软件地址 :
地址:https://gitlab.com/dfc643/appimage2deb
或
将*.AppImage转为Debian软件包工具:Appimage2Deb的使用_Linux软件_云网牛站
但是有一个小坑,生成的deb包的图标不是我想要的,如果要换的话,可以在UOS应用商店里搜索并安装一款名为appimage安装工具来替换图标。
当然还有一个一步到位的方法,这里就不得不提一下认识的一个老哥,ka鹿。他开发了一个插件,在Gitee上搜索UosPackageTool即可。感谢老哥帮助。
4.闭坑!Electron打包成deb文件
最开始我得想法是,先使用Electron将项目打包成deb然后再制作成符合UOS系统规范的包,简而言之,此方法费时费力,需要各种改配置,对比我上面说的方法,简直一把心酸泪……