You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:02:36