1.场景
Electron+react的项目打包成liunx下的appimage文件后,在linux下运行正常。但目的是将之放到基于linux内核下的UOS(统信)系统下,并保证软件安装运行正常。
2.遇到的问题
2.1 开发者模式下如何打包(appimage转符合UOS规范的deb包)
步骤:
第一步
桌面新建空白文件夹,起名随意,我就起名叫test便于理解,然后将你要打包的appimage文件放进去
第二步
解压appimage文件,在test文件夹下打开终端命令行,运行命令:
命令1:chmod +x 文件名 举例 chmod +x com.xx-1.0.2.Appimage 命令2:./文件名 --appimage-extract 举例:./com.xx-1.0.2.Appimage --appimage-extract
会生成一个新的文件夹叫squashfs-root
第三步
Gitee上搜索一款名叫uos-package-upTool的工具,下载到UOS系统下,点击安装。
第四步
打开第二步下载的工具,按照Gitee的说明填写。这一步最需要注意的是
工作目录:就是test
主程序:选择squashfs-root目录下的Apprun
目录:选择squashfs-root
然后就是打包静等片刻后,test文件夹会出现一个新的文件夹,打开后里面的deb文件就是打包后的安装包。
到此,appimage打包成deb安装包成功。但是后面
或许还有坑~
2.2 开发者模式下-打包完成运行时提示4755错误
具体报错为:chrome-sandbox is owned by root and has mode 4755
解决方法就是我之前的博客总结过的。思路就是解包-加权限-打包。这个可以解决提示4755问题。
UOS系统下安装软件打不开的解决方法_接着奏乐接着舞。的博客-CSDN博客_uos命令行打开软件
2.3 开发者模式下运行正常,但是非开发者模式下,点击没反应,命令行执行显示权限不够
解决思路还是解包-加755权限-打包。
第一步
test目录下找到amd64文件夹下找到file文件夹(嵌套可能好几层),打开命令行加权限
chmod 755 -R locales/ resources/ swiftshader/ usr/
然后在打包即可
dpkg-deb -b amd64/ .
接着,退出开发者模式,测试非开发者模式能否正常运行
退出开发者模式命令--输入完需要重启才能生效: sudo chattr -i /var/lib/deepin/developer-mode/enabled sudo rm /var/lib/deepin/developer-mode/enabled
然后再自签名,自签名的方法下面会列出来,我之前单独写过博客怎么自签名。
然后最终的效果:
用户在非开发者模式下,安装签名的软件后,能正常安装正常运行。
2.4 软件包在非开发者模式下的签名问题
看我写的这篇博客即可,这个是自签名,如果测试通过了,可以向UOS官方申请永久签名。
UOS系统如何给软件签名_接着奏乐接着舞。的博客-CSDN博客
总结:
本来思路很清晰的,写着写着发现这篇文章不是那么通俗易懂,因为之前我遇到UOS的很多坑也是看的乱七八糟的,这里我就做一下最后的总结:
遇到的问题基本上都是权限的问题,而面对这样的问题我们的思路是,解包然后加权限最后打包。
如果你有疑问不妨评论区交流~