我已经使用Electron JS创建了一个项目,现在我想使用Electron Forge make制作一个Linux可发行版,但是在任何Linux系统上安装此软件期间,我需要执行以下命令:
sudo sed -i 's/^#[[:space:]]*\(WaylandEnable\)/\1/' /etc/gdm3/custom.conf
这将取消注释 WaylandEnable,然后我的软件可以捕获屏幕截图,而无需用户在截图时一次又一次地选择,它是一个活动监控软件。
我不知道如何在用户安装我的软件时在用户的计算机上运行此命令,一旦执行此命令并安装软件,我想要求用户重新启动系统以使用应用程序。
确保不将应用程序构建为AppImage等,而是使用操作系统的包管理器。这个用例正是 DEB、RPM 等拥有
pre-install
/post-install
脚本的原因。
这些是您可以为包定义的 shell 脚本,它们将由包管理器在安装应用程序的包之前或之后执行。
您可以在 DEB 制造商的 配置中定义 Electron Forge 使用的这些脚本。遗憾的是,在撰写本文时,Electron Forge 仅支持 Debian 软件包的这些脚本,因此当您为 Fedora、RedHat、SUSE 或 OpenSUSE 构建 RPM 软件包时,您将无法使用此机制。如果您需要这个,您可以向维护者提出问题。
对于 Debian 软件包,您的配置片段可能类似于
{
name: '@electron-forge/maker-deb',
config: {
options: {
maintainer: 'YOUR NAME',
homepage: 'https://example.com',
scripts: {
postinst: '/path/to/your/postinst.sh',
postrm: '/path/to/your/postrm.sh'
}
}
}
}
有关更多信息,请参阅我在上面链接到的 Electron Forge 文档。
此外,我建议将您正在修改的配置文件(当然在修改之前)备份到您的
post-install
脚本中指定的位置,并可能在安装之前恢复系统上存在的版本您的应用程序可以撤消应用程序包所做的任何更改。当然,这可能会覆盖其他软件所做的更改,但我认为对于我已经卸载的软件来说,不自行清理是比较粗鲁的。
另一个(在我看来更好)选择是建议用户如何自行更改此配置。在我看来,这似乎只是懒惰/方便的解决方法,您的应用程序可以在没有它的情况下工作。因此,如果用户不希望的话,我不会选择更改他们的系统配置。
无论如何,请确保让您的用户知道安装您的软件包可能会更改他们的 GDM 配置。