Electron Forge打包Linux分发版:安装时执行命令并提示重启
解决Electron Forge Linux分发版安装时执行系统配置命令并提示重启的问题
针对Debian/Ubuntu系(.deb包)
- 在项目根目录创建
debian/postinst脚本文件,内容如下:
#!/bin/sh set -e # 检查WaylandEnable是否已启用,避免重复修改 if grep -q "^WaylandEnable" /etc/gdm3/custom.conf; then echo "Wayland已启用,无需修改配置" else # 取消WaylandEnable注释 sed -i 's/^#[[:space:]]*\(WaylandEnable\)/\1/' /etc/gdm3/custom.conf # 文本提示重启 echo "注意:已修改GDM配置启用Wayland,需重启系统才能让屏幕捕获功能正常工作" # 可选:图形化提示(需依赖zenity,可添加到包依赖) if command -v zenity >/dev/null 2>&1; then zenity --info --text="已修改GDM配置启用Wayland,需重启系统才能让屏幕捕获功能正常工作" fi fi
- 给脚本添加执行权限:
chmod +x debian/postinst
- 在
package.json的Electron Forge配置中关联该脚本:
{ "config": { "forge": { "makers": [ { "name": "@electron-forge/maker-deb", "config": { "postinstallScript": "./debian/postinst", "depends": ["zenity"] // 若用图形提示,添加依赖 } } ] } } }
针对RPM系(.rpm包)
- 直接在
package.json的Electron Forge配置中写入安装后执行的脚本:
{ "config": { "forge": { "makers": [ { "name": "@electron-forge/maker-rpm", "config": { "postinstallScript": "#!/bin/sh\nset -e\nif grep -q \"^WaylandEnable\" /etc/gdm3/custom.conf; then\necho \"Wayland已启用,无需修改配置\"\nelse\nsed -i 's/^#[[:space:]]*\\(WaylandEnable\\)/\\1/' /etc/gdm3/custom.conf\necho \"注意:已修改GDM配置启用Wayland,需重启系统才能让屏幕捕获功能正常工作\"\nif command -v zenity >/dev/null 2>&1; then\nzenity --info --text=\"已修改GDM配置启用Wayland,需重启系统才能让屏幕捕获功能正常工作\"\nfi\nfi", "requires": ["zenity"] // 若用图形提示,添加依赖 } } ] } } }
关键注意点
- 安装包必须以root权限执行(
sudo dpkg -i xxx.deb或sudo rpm -i xxx.rpm),否则无法修改/etc/gdm3/custom.conf系统文件。 - 若用户系统未安装zenity,图形提示会自动降级为文本提示,不影响核心逻辑。
内容的提问来源于stack exchange,提问作者Jamal Ahmed
相关产品推荐
相关产品推荐

