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















 
 
 




 
 
 
 