格式 |
后置安装脚本/后置卸载脚本 |
桌面图标 |
一键安装 |
其他说明 |
deb/rpm/freebsd |
✔ |
✔ |
✔ |
系统自带的ubuntu software商店提供的一键安装功能, 也可以通过dpkg命令一键安装 |
AppImage |
✔ |
不需要安装, 可直接打开 |
electron-builder提供deb、rpm、freebsd之类相似的安装包
不同的linux发行版原生支持的安装包也是不同的
rpm包主要用于redhat及分支如redhat,centos,Fedora等
而deb包主要用于debian及分支如debian,ubuntu等。
由于deb包比较符合开发的要求,下面记录的都是针对deb的包
程序安装路径安装方式
deb安装包默认安装到 /opt 这个目录下
可以通过执行dpkg命令查看安装的目录
dpkg -L xxxx
手动安装/更新方式
通过执行命令方式
sudo dpkg -i xxxx.deb
后置安装/卸载脚本
虽然文档里没有写,但deb也同样支持afterInstall、afterRemove脚本
在package.json中配置一个和linux同级的对象
{
"build": {
"linux": {
"icon": "icon.icns",
"target": {
"deb"
}
},
"deb": {
"afterInstall": "afterInstall.sh",
"afterRemove": "afterRemove.sh"
}
}
}
注意, 已经安装软件的情况下,通过命令安装一个更高版本的软件的时候,会先卸掉旧的软件. 因此afterInstall与afterRemove都会执行一遍
模拟deb包的安装
由于不同系列的发行版默认支持的包管理器不同. 为了适配多个系统,有必要手动编写一下安装的脚本模拟deb包的安装过程.
通过electron-builder构建的deb包,会将文件安装到以下几个路径
/opt/${程序名} # 主程序文件目录
/usr/share/icons/hicolor/${分辨率}/${程序名}.png # 程序图标路径, 会有这几种分辨率 16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024
/usr/share/applications/${程序名}.desktop # 程序图标路径
下面是dpkg -L的结果
直接的方式可以编写脚本,将electron-builder构建好的tar包解压后,文件分别移动到上述几个地方
解压deb包
另外一种方式,可以全部使用deb包.
对于非debian的系统,先通过ar这个命令解压deb包,得到
control.tar.gz和data.tar.xz 2个压缩包.
control.tar.gz中包含以下一些deb包特有的安装文件
data.tar.xz中包含的则是应用程序本身的文件,包括主程序和图标文件
用命令解压这2个安装包后,模拟deb包的安装过程将文件分别移动到对应位置,再执行postinst脚本.