Opera on USBメモリ まとめ

未だに中途半端にまとめたものにリンクを貼る人がいるのと完全に自動化したかったのでまとめてみた。

作業環境

準備

1. Native Win32 ports of some GNU utilities からUnxUpdates.zipをダウンロードし、sed.exeを取り出す。
2. 以下のファイルを作成する。

[opera-usb-launch.bat]

@echo off
echo "USBメモリのドライブ名を指定。例) E:"
set /p operadrive=
%operadrive%\Opera\Opera.exe

場合分け

インストール時に「Individual Opera profiles fo each other user on this computer」にチェックを付けた場合、すなわちopera:aboutにおいて「Preferences」がC:\Documents and Settings云々以下になっている場合をA、チェックを付けなかった場合、すなわちopera:aboutにおいて「Preferences」がC:\Program Files\Opera云々等となっている場合をBとする。

Opera 8.51 スクリーンショット その1

A

1. http://www.opera.com/download/ から最新のOperaインストーラーをダウンロードし、「Individual Opera profiles fo each other user on this computer」にチェックを付けずに、現在Operaがインストールされているディレクトリ(「C:\Program Files\Opera」とする)とは異なるディレクトリ(「C:\Program Files\Opera851」とする)にインストールする。
2. 以下のファイルを作成する。

[opera-usb.sed]

s/\[User Prefs\]/\[User\ Prefs\]\nCache Directory4=%temp%/
s/C:\\Program Files\\Opera851/%operadrive%\\Opera/
/Save Dir=\w*/c Save Dir=C:\
/Open Dir=\w*/c Open Dir=C:\

1行目ではキャッシュディレクトリを指定している。一般にUSBメモリに頻繁にアクセスすることは望ましくないので%temp%ディレクトリを使用する。変更したい場合には「%temp%」を適宜置き換える。なお、「\」「.」などは「\」でエスケープしなければならない。(以後*.sedファイルを編集する場合は同様。)

[opera-usb-usr.sed]

s/\[User Prefs\]/\[User\ Prefs\]\nCache Directory4=%temp%/
s/C:\\Documents and Settings\\Foo\\Application Data\\Opera\\Opera/%operadrive%\\Opera/
/Save Dir=\w*/c Save Dir=C:\
/Open Dir=\w*/c Open Dir=C:\

1行目はopera-usb.sedと同様。2行目はユーザ名が「Foo」の場合。opera:aboutで確認すること。

[opera-usb.bat]

set exec_dir=%cd%
set sedpath=E:\bin
set path=%SystemRoot%;%SystemRoot%\system32;%sedpath%;
set install_dir="C:\Program Files\Opera851"
set orig_plugins_dir="C:\Program Files\Opera\program\plugins"
set usbmem_drive=E:
set profile_dir="C:\Documents and Settings\Foo\Application Data\Opera\Opera"
if exist %temp%\Opera rd /s /q %temp%\Opera
mkdir %temp%\Opera
xcopy %install_dir% %temp%\Opera /e /v /i /q /h /k /y
xcopy %profile_dir%\* %temp%\Opera\ /e /v /i /q /h /k /y
xcopy %orig_plugins_dir%\* %temp%\Opera\program\plugins\ /e /v /i /q /h /k /y
cd /d %profile_dir%
sed -f %exec_dir%\opera-usb-usr.sed profile\opera6.ini > %temp%\Opera\profile\opera6.ini
sed -f %exec_dir%\opera-usb-usr.sed mail\index.ini > %temp%\Opera\mail\mailindex.ini
sed -f %exec_dir%\opera-usb-usr.sed mail\accounts.ini > %temp%\Opera\mail\accounts.ini
cd /d %install_dir%
sed -f %exec_dir%\opera-usb.sed OperaDef6.ini > %temp%\Opera\OperaDef6.ini
sed -f %exec_dir%\opera-usb.sed spellcheck.ini > %temp%\Opera\spellcheck.ini
cd /d %temp%\Opera
rd /s /q uninst profile\cache4 profile\uninst
if exist %usbmem_drive%\Opera rd /s /q %usbmem_drive%\Opera
mkdir %usbmem_drive%\Opera
xcopy * %usbmem_drive%\Opera /e /v /i /q /h /k /y
cd ..
rd /s /q Opera
cd /d %exec_dir%
pause

2行目はsed.exeが存在するパスを指定するが、opera-usb.batと同じディレクトリにある場合は%cd%を指定しておく。6行目はUSBメモリが接続されているドライブ名を指定する。7行目はユーザ名が「Foo」の場合。opera:aboutで確認すること。
3. 先程作成したopera-usb.batを実行する。デフォルトでは有効であるがコマンド拡張機能が無効になっている場合には、/E:ONを付けてコマンドプロンプトを起動して実行する。なお、opera-usb.bat, opera-usb.sedopera-usb-usr.sedは同一ディレクトリ内に存在しなければならない。

B

1. 現在Operaがインストールされているディレクトリを「C:\Program Files\Opera」とする。以下のファイルを作成する。

[opera-usb.sed]

s/\[User Prefs\]/\[User\ Prefs\]\nCache Directory4=%temp%/
s/C:\\Program Files\\Opera/%operadrive%\\Opera/
/Save Dir=\w*/c Save Dir=C:\
/Open Dir=\w*/c Open Dir=C:\

[opera-usb.bat]

set exec_dir=%cd%
set sedpath=E:\bin
set path=%SystemRoot%;%SystemRoot%\system32;%sedpath%;
set install_dir="C:\Program Files\Opera"
set usbmem_drive=E:
if exist %temp%\Opera rd /s /q %temp%\Opera
mkdir %temp%\Opera
xcopy %install_dir% %temp%\Opera /e /v /i /q /h /k /y
cd /d %install_dir%
sed -f %exec_dir%\opera-usb.sed OperaDef6.ini > %temp%\Opera\OperaDef6.ini
sed -f %exec_dir%\opera-usb.sed spellcheck.ini > %temp%\Opera\spellcheck.ini
sed -f %exec_dir%\opera-usb.sed profile\opera6.ini > %temp%\Opera\profile\opera6.ini
sed -f %exec_dir%\opera-usb.sed mail\index.ini > %temp%\Opera\mail\mailindex.ini
sed -f %exec_dir%\opera-usb.sed mail\accounts.ini > %temp%\Opera\mail\accounts.ini
cd /d %temp%\Opera
rd /s /q uninst profile\cache4
if exist %usbmem_drive%\Opera rd /s /q %usbmem_drive%\Opera
mkdir %usbmem_drive%\Opera
xcopy * %usbmem_drive%\Opera /e /v /i /q /h /k /y
cd ..
rd /s /q Opera
cd /d %exec_dir%
pause

2. 先程作成したopera-usb.batを実行する。デフォルトでは有効であるがコマンド拡張機能が無効になっている場合には、/E:ONを付けてコマンドプロンプトを起動して実行する。なお、opera-usb.batとopera-usb.sedは同一ディレクトリ内に存在しなければならない。

起動

opera-usb-launch.batをダブルクリックして起動させる。入力を促されるので使用するPCにおけるUSBメモリのドライブ名を入力する。これでOperaが起動するはずだ。
マルチユーザーインストールの場合でもプラグインをコピーするようにしてあるが、正直なところFlash Player以外はあまり役立ちそうに無い。結局インストールされていなければ意味が無いからである。ave DirやOpen DirをC:\に置換しているのは、以前存在しないパスがそれらに指定されているとOperaが固まることがあったからである。だが、8.51ではそのようなことは起こらなかったので、もしかしたら必要無いかもしれない。
Opera@USBがあるのだからこんなもの作る必要は無いだろうが、バッチファイルになっていることでUSBメモリ上のOperaとHDD上のOperaとの同期をとるのには便利かもしれない。