web-dev-qa-db-ja.com

Googleの「オマハ」(Chromeの自動更新エンジン)の体験はどうですか?

Googleは、Googleで使用されている自動更新メカニズムをオープンソース化していますChrome as Omaha

Google以外のユーザーにとっては、設定が非常に複雑で難しいようです。プロジェクトでオマハを使用した経験は何ですか?おすすめできますか?

60
Mark

製品にはオマハを使用しています。最初は、ハードコードされたURLと文字列を変更するかなりの作業がありました。また、サーバーはオープンソースではありませんが、プロトコルは十分に文書化されているため、Google App Engineを使用して互換性のあるサーバーを作成することは難しくありませんでした。

以前のクライアントアップデートソリューションを廃止し、オマハに移行したことについて後悔はありません。

30
Bevan Collins

おそらく、 Google Chrome で使用される更新メカニズムである courgette algorithm を活用できます。それは本当に使いやすく、インフラストラクチャに適用できます。現在、Windowsオペレーティングシステムでのみ機能します。 ChromeのWindowsユーザーは、チャンクを合計サイズで受信しているMacおよびLinuxユーザーとは異なり、小さなチャンクで更新を受信します。

ソースコードは hereChromium SVNリポジトリにあります。これは、ディストリビューション全体を常に送信する代わりに、Googleに小さな更新を適用するための圧縮アルゴリズムですChrome。10 MB全体をユーザーにプッシュするのではなく、変更。

ズッキーニの仕組みの詳細については、 ここ とそれに関する公式ブログの投稿 ここ を参照してください。

それはこのように動作します:

server:
    hint = make_hint(original, update)
    guess = make_guess(original, hint)
    diff = bsdiff(concat(original, guess), update)
    transmit hint, diff

client
    receive hint, diff
    guess = make_guess(original, hint)
    update = bspatch(concat(original, guess), diff)

ソースをチェックアウトすると、それを実行可能ファイルとしてコンパイルでき(Visual Studioで右クリックしてコンパイル)、アプリケーションをその形式でテストに使用できます。

用途:

  courgette -dis <executable_file> <binary_Assembly_file>
  courgette -asm <binary_Assembly_file> <executable_file>
  courgette -disadj <executable_file> <reference> <binary_Assembly_file>
  courgette -gen <v1> <v2> <patch>
  courgette -apply <v1> <patch> <v2>

または、それをアプリケーションに組み込んで、そこから更新を行うこともできます。定期的にチェックし、Courgetteを実行する独自のサービスを作成することで、オマハの自動更新環境を模倣できます。

16
Mohamed Mansour

[〜#〜]更新[〜#〜]

  • C++、pythonまたはcomについての知識がない場合、google omahaのカスタマイズはそれほど簡単ではありません。
  • 更新がそれほど頻繁に公開されない
  • 任意の言語で手動更新を実装するには、 com classes を使用できます

再開

  • グーグルオマハはまだ生きていますが、怠惰な方法で
  • バグは修正されていますが、修正プログラムは必要ありません
  • google omahaは、Windows Vista以降でサポートされるWindowsクライアントアプリに適合
  • 私が使用しているサーバー側は、クロスプラットフォームのサポートにも対応しています。
  • フィードバックとクラッシュもサーバーでサポートされています
    • フィードバックはグーグルプロトコルバッファで送信されます
    • クラッシュ処理はブレークパッドで行われます

個人的には、独自のソリューションを実装するのではなく、グーグルオマハに行きます。ただし、この内部について説明します。

2
NtFreX

.NETの世界では、 ClickOnce の展開を確認す​​ることをお勧めします。

1
Jakub Konecki

オマハの設定に数日を費やしたところです。退屈ですが、不可能ではありません。必要な手順を詳細な チュートリアル にまとめました。私は omaha-server をバックエンドに使用しています。本番環境での使用についてはまだコメントできませんが、詳細がわかり次第、この回答を更新します。

1

自動更新メカニズムは私自身が自分でコーディングするものであり、常に過去のものです。マルチギガバイトのアプリケーションがあり、ビットとピースのみをアップロードしたい場合を除き、独自のコード/インストーラーに依存してください。とは言っても、Googleのオープンソースライブラリはまったく見たことがなく、存在することすら知りませんでした。自分でコーディングできるものより優れたものを提供しているとは想像できません。自分のコードでは、ライセンスの制限に縛られることはありません。

0
dyasta