朝顔日記

Firefox の更新差分を手動で当ててみた

publish
2005-10-04T12:03:47+09:00
tags
はてぶ

Fierfox の更新差分ファイル、mar を、Firefox 同梱の updater を使って当てる方法が、Software Update:Manually Installing a MAR file - wiki.mozilla.org に載っていたので試しに手動での更新を試してみました。例として載っていたのは、Linux の場合ですが Windows 環境でも同様に行うことが出来ました。

件のページによれば、手動でのアップデートは Firefox 自体を起動させることなくアップデートしたいときに有益であるとの事です。それが一体どういう場合なのかよくわかりませんが。まぁ、管理者が管理している Firefox を一斉更新したいときとかに使えるのかな?

とにかく、説明ページのとおりに行えば難しいことはありません。更新前の Firefox は、ID:2005100206 の公式 1.8branch なナイトリーです。更新のために用意した差分ファイルは、firefox-1.4.1.en-US.win32.partial.2005100206-2005100307.mar というファイルで、これは 20051002 なナイトリーのディレクトリにあります。これをダウンロードしてきて、update.mar にリネームします。私の Firefox インストールディレクトリは、c:\bin\firefox なんですが、この一つ上の階層に firefox-update なるディレクトリを掘ります。c:\bin\firefox-update ですね。このディレクトリに、firefox ディレクトリにある、updater.exe をコピーします。また先ほどリネームした、update.mar もここへ格納しておきます。これで準備は完了。

コマンドプロンプトを起動して、firefox ディレクトリへ移動します。

cd bin\firefox

firefox をカレントにしておいて以下のコマンドを叩きます。

..\firefox-update\updater ..\firefox-update\update 0
..\firefox-update\updater ..\firefox-update 0

これでアップデートは完了です。Firefox を起動して、Nightly Tester ToolsMR Tech's Local Install などを使って ビルド ID を確認したところ、無事 ID:2005100307 になっていました。

firefox-update ディレクトリには、更新情報が格納されるようで、以下のファイルが生成されていました。

  • update.log
  • update.manifest
  • update.status

update.status ファイルをエディタで開いてみたところ、succeeded とだけ書いてありました。他のふたつのファイルも覗いてみると何が行われたのかわかって面白いと思います。興味のある方はどうぞ。

最後に試しに、アップデート後に再度手動での更新を試みたところ、update.status は failed となっていたので、そこらもちゃんとしているようです。(当然か

「Firefox の更新差分を手動で当ててみた」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事へのツッコミ

1: (2006-02-02T00:20:36+09:00)
..\firefox-update\updater ..\firefox-update\update 0
ではなくて、
..\firefox-update\updater ..\firefox-update 0
だと思います。
2: のり (2006-02-02T11:11:15+09:00)
既に忘却の彼方なので再度試してみました。
updater.exe -h
すると、
Usage: updater <dir-path> <parent-pid> [working-dir callback args...]
と出るので、差分ファイルのありかを示すだけでよさそうなので、差分ファイルを明示する必要はなさそうですね。試して手動で 1.5 から 1.5.0.1 への更新を試みてみたところ、
..\firefox-update\update 0
でも更新出来ましたが。もっとも Fx インストールディレクトリの update ディレクトリ内の "0" というディレクトリがあると失敗する場合もあるようです。
記事は修正しておきます。情報ありがとうございます。
3: (2006-02-03T01:34:46+09:00)
(↑もじら組フォーラム のURLを入れてます)
もじら組フォーラムで、ここを見てやってみたけどできなかった、と言う人がいたのでこちらにツッコミ入れてみました。

> 差分ファイルのありかを示すだけでよさそうなので、差分ファイルを明示する必要はなさそうですね。
wiki には
../firefox-update/updater ../firefox-update 0
と書かれてるので、そのまま Windows に置き換えれば
..\firefox-update\updater ..\firefox-update 0
になるはずだし、
差分ファイルとしては <dir-path>\updater.mar を使おうとするので、<dir-path> に ..\firefox-update\update を指定すると ..\firefox-update\update\update.mar を使おうとしますが、そんなファイルはないので更新できないんです。
4: あ (2006-02-03T01:35:13+09:00)
> ..\firefox-update\update 0
> でも更新出来ましたが。
それも何かの間違いじゃないかと…
まず updater.exe を実行するためには
..\firefox-update\update ではなくて
..\firefox-update\updater なのと、
引数は2つ以上ないと、Usage を出力するだけでおしまいです。
(<dir-path> も <parent-pid> も省略はできない)
5: のり (2006-02-03T11:34:39+09:00)
> ..\firefox-update\update 0
> でも更新出来ましたが。

の部分ですが updater.exe に渡す引数の部分だけを書きました。誤解を招く書き方でしたね。すみません。
もっとも、今日再度試してみたところうまくいかなかったので、やはり何か間違いがあってうまく行ったように勘違いしたのかもしれません。

> 差分ファイルとしては <dir-path>\updater.mar を使おうとするので

これは、updater.mar ではなくて、update.mar でしょう。
6: あ (2006-02-04T09:05:03+09:00)
> これは、updater.mar ではなくて、update.mar でしょう。

仰るとおりです。間違えてしまいました。

トラックバック

1: [サ]サル並日記/[moz] 今日の Gecko類 (2005-10-04T16:47:02+09:00)
以前の日記に Motohikoさんから反応が有った訳ですが tracbackにも気付かずスルー状態だった所、のりさんが試した様子で
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2005/10/diary_051004a.html