基于Omaha協議之開源軟件更新工具概述
譯文當一款軟件被安裝在用戶系統當中之后,我們該如何保持其始終緊隨更新進度?盡管Linux用戶們通常會利用軟件包管理系統從選定的庫中獲取***版本,但其它系統的用戶往往就沒那么幸運了。有鑒于此,我們開發出一款開源工具來實現這一目標,其基于來自谷歌的Omaha開源協議。
幾年之前,谷歌公司發布了一套名為Omaha(也被稱為Google Update)的開源協議,并將其作為其Chromium項目中的組成部分。該協議旨在幫助用戶以更為輕松的方式完成復雜的桌面軟件更新流程。
就目前而言,Omaha被主要應用在各類谷歌產品當中,例如谷歌Chrome或者谷歌地球。其Google Update系統則主要在Windows軟件領域發揮作用,旨在實現自動化更新流程; 谷歌軟件的Linux版本仍然依賴于Linux發行版當中自帶的各類軟件包管理器。Google Update的主要優勢在于,該框架能夠被整合到任何需要支持自動化更新功能的軟件當中,并具備對單一來源的各類新補丁及更新加以管理的能力(同時能夠收集錯誤報告)。
目前谷歌公司已經發布了一款通用型客戶端,用于支持Omaha協議。該客戶端的服務器實現方案尚未發布,而且用戶需要利用具備基礎常見命令支持能力的基礎版本才能將Google Update集成到自有軟件當中。我所效力的公司希望幫助開發基于自定義Chromium的瀏覽器,因此我們開發并發布了其服務器開源版本,這樣Google Update系統的潛在用戶將能夠擁有完整的訪問流程,并非常順利地將方案與自己的軟件加以集成。
除了Omaha協議之外,我們的實現方案還包含對Sparkle的支持能力——Sparkle是Mac OS X軟件領域中一套廣受好評的更新框架。除此之外,我們還將自己的實現方案與管理員面板相結合,希望借此簡化版本管理、alpha與beta版本分部升級以及錯誤報告工具等功能。
我們一直在密切關注其部署流程,并幫助用戶利用簡單命令設置一套生產或者開發環境。最終,我們選擇了開放性Docker平臺,其不僅能夠讓分發流程更具靈活性,同時允許用戶在任意給定服務器中的隔離環境下運行該鏡像。大家能夠輕松將其部署在任意云環境當中。
為了與更多人分享Omaha服務器,我們開發出了一套演示方案(點擊此處查看),其中囊括了更多細節、完整的文件,并通過GitHub進行示例共享,且接收熱心參與者們的項目貢獻。
對于該客戶端,我們對谷歌的實現方案進行了fork以保持其與Visual Studio各現代版本之間的兼容效果,并在流程整合的同時改進了用戶體驗。不過根據Chromium的群發通知郵件,該谷歌客戶端目前仍處于開發過程當中,因此系統成果僅僅適用于內部環境,這意味著未來幾年內該公司都不會發布***補丁。目前的客戶端版本還無法支持一部分協議功能,例如CodeRed(允許用戶在安裝失敗之后恢復原先版本)。該客戶端的版本同樣被托管在GitHub中的獨立庫當中,全部源代碼都基于Apache 2.0許可發布。
我們希望自己的方案能夠簡化各位開源愛好者及企業客戶的日常工作體驗,幫助大家在Chromium OS或者Chrmium瀏覽器之上建立起自己的基礎設施,并帶來一套適用于生產環境的服務器/客戶端方案鏈。除此之外,大家也可以將該系統視為適合與更新流程較為復雜的項目相匹配的高效更新解決方案。