一旦软件安装到用户系统上,如何保持更新?虽然 Linux 用户通常拥有软件包管理系统,可以从他们选择的存储库中拉取最新版本,但其他系统的用户就没有那么幸运了。我们开发了一个开源工具来协助完成此过程,该工具基于 Google 的一个名为 Omaha 的开源协议。
几年前,Google 发布了一个名为 Omaha(也称为 Google Update)的开源协议,作为其 Chromium 项目的一部分。该协议旨在简化复杂桌面软件的更新过程。
到目前为止,Omaha 主要用于 Google 产品,例如 Google Chrome 或 Google Earth。Google Update 系统主要由 Windows 软件使用,用于实现自动更新过程;Google 软件的 Linux 版本依赖于 Linux 发行版中包含的软件包管理器。Google Update 的主要优点是该框架可以与任何需要支持自动更新功能以及从单个位置管理新补丁和更新(以及收集错误报告)的软件集成。
Google 公开提供了一个客户端的实现,该客户端支持 Omaha 协议。服务器的实现尚未发布,任何将 Google Update 集成到用户自己的软件中的意图都需要实现一个基本版本,至少支持通用命令。由于我工作的公司帮助开发定制的基于 Chromium 的浏览器,我们开发并发布了服务器的开源版本,以便 Google Update 系统的潜在用户可以访问完整的链条,并能够轻松地将其集成到他们的软件中。
除了 Omaha 协议之外,我们的实现还包含对 Sparkle 的支持,Sparkle 是 Mac OS X 软件的知名更新框架。此外,我们将我们的实现与管理面板相结合,以便于版本管理、alpha 和 beta 版本的局部升级以及错误报告工具。
我们密切关注部署过程,该过程被构想为几个命令来设置生产或开发环境。最终,我们选择了开放的 Docker 平台,这使得分发更加便携,并允许在任何给定服务器上的隔离环境中运行镜像。它可以轻松部署到任何云环境。
为了分享更多关于 Omaha 服务器的信息,我们开发了一个 幻灯片,其中详细介绍了更多信息,完整的文档和示例保存在 GitHub 上,我们接受来自社区的 pull request。
关于客户端,我们 fork 了 Google 的实现,以保持其与现代版本的 Visual Studio 的兼容性,并在集成过程中改善用户体验。根据 Chromium 邮件列表,Google 的客户端仍在组织内部开发,但是,由于内部使用的构建系统,他们无法在几年内发布最新的补丁。当前客户端尚不支持某些协议功能,例如 CodeRed(允许在安装失败的情况下恢复到以前的版本)。客户端的版本也位于 GitHub 上的单独存储库中。所有源代码均根据 Apache 2.0 许可证发布。
我们希望我们的实现将 облегчить 开源爱好者和企业的工作,这些爱好者和企业在 Chromium OS 或 Chromium 浏览器之上构建自己的基础设施,为他们提供生产就绪的更新服务器/客户端链。此外,值得考虑将此系统作为对该过程有复杂要求的项目的高效更新解决方案。
评论已关闭。