如何在Linux上实现自动更新电子应用程序

时间:2016-06-30 17:26:27

标签: linux rpm electron auto-update deb

我使用electron创建跨平台应用程序。对于Windows和Mac,它可以通过电子工具完成,如autoUpdate,Squirrel等。

问题仅出在Linux上。我为Ubuntu构建了一个.deb包。但是,我无法逐步找到任何""有关它的说明或全面信息。

我不熟悉java,也没有为Linux创建应用程序的经验。

所以主要问题是:

  1. 什么是使用发布程序包管理器的标准自动更新过程?谁应该下载并安装更新并重新启动应用程序。
  2. 解决问题的另一种方法是什么?创建自定义更新的最佳做法是什么?
  3. .deb,.rpm包之间有什么区别?Ubuntu和Fedora之间有什么区别?
  4. 所有信息都会有所帮助,即使它(信息)也与电子应用无关。

    谢谢!

4 个答案:

答案 0 :(得分:5)

* nix世界中确实没有标准。您将始终必须支持特定的ditributions,并且每个分发可以反过来有多种可能的方式来创建自动更新程序。

问题:

  1. 没有标准方法。

  2. 这取决于你实际分发他的包裹的方式。如果您打算使用像rpm / apt-get / apt install这样的包管理器,那么这些管理器中的每一个都有一种特定的方法可以将应用程序配置为检查自动更新的包。

  3. .rpm / .deb:

    之间的区别
      

    软件包维护者的主要区别(我认为会是这样   '显影剂'在Debian lingo中)是包元数据的方式   随附的脚本汇集在一起Link

    Ubuntu& Fedora:由于在这些问题上创建详细的答案既过于冗长又需要付出太多努力,请查看this blog post详细说明这两个分布之间的差异。

答案 1 :(得分:3)

Jens的答案真的是最好的。

但是如果您不想花时间学习RPM和DEB并为所有发行版构建软件包,那么您可以考虑使用Flatpak打包您的应用程序。 http://flatpak.org/#about

它创建了一个可以在Ubuntu,RHEL上运行的大型存档....无处不在。

答案 2 :(得分:1)

如果您的项目适用于AppImage格式,则可以尝试electron-simple-updater

答案 3 :(得分:1)

Appimages

您几乎可以在Appimages中使用electron-builder创建any Linux distribution来安装或自动更新应用程序

  

AppImage是通用软件包格式。通过将软件打包到AppImage中,开发人员仅提供一个文件“即可全部统治”。最终用户,即您,可以在大多数(如果不是全部)现代Linux发行版中使用它

如果要自动更新应用,则还需要electron-autoupdater。目标:

  • MacOS:DMG。
  • Linux:AppImage
  • Windows:NSIS

您可以找到使用此here的项目的示例。重要文件:package.jsonupdater.jsupdater_renderer.js

通过其中一些说明,您可以创建安装程序:

yarn electron-builder --linux --x64
yarn dist_linux                        # shortcut in package.json

deb,rpm

您可以使用electron-builder创建诸如deb或rpm之类的软件包,但要自动更新,则取决于Jens在其回答中所说的分发方式。最终用户可能需要添加一个apt存储库以保持最新状态