searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Electron-Builder Ubuntu打包调研

2023-06-09 02:59:34
98
0

格式

后置安装脚本/后置卸载脚本

桌面图标

一键安装

其他说明

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脚本.

0条评论
0 / 1000
黄****鑫
1文章数
0粉丝数
黄****鑫
1 文章 | 0 粉丝
黄****鑫
1文章数
0粉丝数
黄****鑫
1 文章 | 0 粉丝
原创

Electron-Builder Ubuntu打包调研

2023-06-09 02:59:34
98
0

格式

后置安装脚本/后置卸载脚本

桌面图标

一键安装

其他说明

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脚本.

文章来自个人专栏
Electron研究
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0