2017年3月17日金曜日

PC Firefox を 手動更新

故あって、 Firefox の手動更新にトライしました。
あまり、事例がなさそうなので、 今後の参考の意味も含めて、 投稿に纏めます。
差分ファイルを利用した、手動更新の流れです。
きっと、 自動更新は これと同じ様な事を バックグラウンドで実行しているのでしょうね。


Firefox の更新です。
x86 と x64 とが共存する環境下で手動更新して見ました。
実は、通信環境の劣悪さ から  更新のダウンロードが進まないのです。
しかし、差分ファイル (パッチ) の拡張子 .mar は この影響下に無い様で、
すんなりと降りてくれます。
或いは、プロセスのバックグラウンドとフォアグラウンドとの差異なのかも知れません。
さあ、 .mar を使っての更新です。


今回の ダウンロード URL は  ( https では ) 、
x64
https://releases.mozilla.org/pub/mozilla.org/firefox/releases/52.0/update/win64/ja/firefox-51.0.1-52.0.partial.mar
x86
https://releases.mozilla.org/pub/mozilla.org/firefox/releases/52.0/update/win32/ja/firefox-51.0.1-52.0.partial.mar
です。
    ご利用の バージョン や 差分のステップ によって異なるので、 URL は 外部リンク にはしていません。.
バージョン 51.0.1 から 52.0 への差分で、 ja が言語、 win32 や win64 がアプリケーションとしてのビット数を示しています。
このルールは固定の様なので、環境に合わせて書き換えて下さい。

差分ファイルを手元に準備した処から始めます。


では、
コマンドプロンプト (cmd.exe) を 管理者として立ち上げます。
以下の例では、作業用フォルダは 環境変数 temp 上にしてあり、別ドライブ上にしたケースに該当します。
    ドライブ変更の所は 文字の色を薄くしています。  ¥ が \ に化けていますが、そのまま、掲載です。..

    Microsoft Windows [Version 10.0.14393]
    (c) 2016 Microsoft Corporation. All rights reserved.

    C:\WINDOWS\system32>set temp
    TEMP=W:\Work\Local\Temp

    C:\WINDOWS\system32>w:

    W:\>cd %temp%

    W:\Work\Local\Temp>copy D:\Users\UserA\Downloads\firefox-51.0.1-52.0.partial(1).mar %temp%
            1 個のファイルをコピーしました。

    W:\Work\Local\Temp>copy "C:\Program Files\Mozilla Firefox\updater.exe" %temp%
    W:\Work\Local\Temp\updater.exe を上書きしますか? (Yes/No/All): y
            1 個のファイルをコピーしました。

    W:\Work\Local\Temp>ren firefox-51.0.1-52.0.partial(1).mar update.mar
    重複するファイル名が存在するか、またはファイルが
    見つかりませんでした。

    W:\Work\Local\Temp>del update.mar

    W:\Work\Local\Temp>ren firefox-51.0.1-52.0.partial(1).mar update.mar

    W:\Work\Local\Temp>updater.exe %temp% "C:\Program Files\Mozilla Firefox" "C:\Program Files\Mozilla Firefox"

   W:\Work\Local\Temp>type update.status
    succeeded


    W:\Work\Local\Temp>copy D:\Users\UserA\Downloads\firefox-51.0.1-52.0.partial.mar %temp%
            1 個のファイルをコピーしました。

    W:\Work\Local\Temp>del update.mar

    W:\Work\Local\Temp>ren firefox-51.0.1-52.0.partial.mar update.mar

    W:\Work\Local\Temp>updater.exe %temp% "C:\Program Files (x86)\Mozilla Firefox" "C:\Program Files (x86)\Mozilla Firefox"

    W:\Work\Local\Temp>type update.status
    succeeded

    W:\Work\Local\Temp>

差分ファイルは x86 と x64 で同名なので、
双方を弄る場合には、上記の様に、ファイル名が重複し、 (1).mar が生成されます。
上の例では、 x86 版が  firefox-51.0.1-52.0.partial.mar 、x64 版が  firefox-51.0.1-52.0.partial(1).mar です。
本来なら、 差分ファイルダウンロード時に ファイル名を変更し、
例えば、 firefox-51.0.1-52.0.partial_x86.mar と firefox-51.0.1-52.0.partial_x64.mar と、
判別し易い名称にして置く方が良い筈です。

あっ、書き忘れました。
上記の例は、 間違って、x86 用のものを x64 に適応して失敗してからの、遣り直し! です。
ですから、 上書き確認 や 重複 の メッセージが記録されています。  生々しく、そのまま、掲載。.


因みに、x64 に x86 の差分ファイル を充てると
 update.log (抜粋)

PATCH DIRECTORY W:\Work\SYSTEM\Local\Temp
INSTALLATION DIRECTORY C:\Program Files\Mozilla Firefox
WORKING DIRECTORY C:\Program Files\Mozilla Firefox
UPDATE TYPE partial
PREPARE PATCH xul.dll
PREPARE PATCH wow_helper.exe
...
PREPARE REMOVEFILE browser/components/browsercomps.dll
PREPARE REMOVEDIR browser/components/
EXECUTE PATCH xul.dll
LoadSourceFile: destination file size 64079816 does not match expected size 53103560
LoadSourceFile failed
### execution failed
FINISH PATCH xul.dll
backup_restore: backup file doesn't exist: xul.dll.moz-backup
FINISH PATCH wow_helper.exe
backup_restore: backup file doesn't exist: wow_helper.exe.moz-backup
...
backup_restore: backup file doesn't exist: browser/components/browsercomps.dll.moz-backup
failed: 2
calling QuitProgressUI
こんなログが吐き出され 失敗 に終わります。
引用中の 赤い字 は ShiroYuki_Mot が色を変更しています。.



0 件のコメント:

コメントを投稿