ボトルフックは CrossOver
で作成したボトルを自動的にカスタマイズさせる仕組みです。動作させるにはスクリプトを使用するため、柔軟にカスタマイズできます。例えば、ボトルフックではドライブ名、レジストリ設定、C:
ドライブの内容などを修正できます。このボトルフックで特に便利なのは、配布先に応じて、またはユーザーごとに、ボトルをカスタマイズできることです。
ボトルフックで作成される3つのレベル:
システム全体のフックは root
以外のユーザーのボトルも含めて、システム上のすべてのボトルに適用するので、マシンの構成やハードウェアにボトルを適応させるには最適です。フックは
$CX_ROOT/support/scripts.d
ディレクトリに保存されています。
個人ユーザーのフックはシステム全体のフックと同じですが、個人ユーザーのボトルにのみ適用し、すべてのシステム全体のフックの実行後に実行されます。フックは、
~/.cxoffice/scripts.d
ディレクトリに存在します。
各ボトルにはフックのセットを組み込むことができます。フックのセットにより、特に root
以外のユーザーが管理ボトルを使用するように設定できます。このフックはまた、ボトルをアーカイブしたとき、ボトルに自動的に組み込まれ、別のコンピューター上であっても後からボトルを復元するときに実行できます。このフックは、ボトルの
scripts.d
ディレクトリに保存されます。
フックは一般的にはシェルスクリプトの実行ファイルで、上のフックディレクトリに保存します。フックの名前は、
nn.name
の形式で指定し、nn
はフックを実行する順番を指定した2つの10進数で、name
にドットやダッシュを指定できませんが、フックの目的を指定します。
フックがコールされるイベントの解説:
ボトルが作成された時
hook
create template
template
パラメーターはボトルのベースとなるテンプレート名(例えば「win98
」)を示します。
ボトルがリストアされた時
フック
復元
ボトルが新しいCrossOverのバージョンにアップグレードされた時
フック
の古いバージョンのボトル
がらのアップグレード
old-bottle-version
はボトルが使われていた元のCrossOverのバージョンです。
ボトルにスタブが作成された時
hook
create-stub
published-wineprefix
これは、管理ボトルが root 以外のユーザーアカウントで初回使用された時に発生します。この場合、$WINEPREFIX
環境変数は新規作成したボトルスタブを指しますが、published-wineprefix
は、/opt/cxoffice/etc
に存在する root ユーザーの参照用コピーを指します。
ボトルスタブがアップデートされた時
hook
update-stub
published-wineprefix
このケースは、published-wineprefix
の中にある、管理ボトルの参照用コピーを管理者が更新した場合に発生します。ユーザーのボトルスタブは、更新しないでください。
フックは必ず、 Wine
のコンテキスト中に呼び出されます。このため、--bottle
を使用する必要はなく、次の環境変数を使用します:
CX_ROOT
CrossOverがインストールされるディレクトリへの絶対パス。
CX_BOTTLE
現在のボトル名。
WINEPREFIX
ボトルへの絶対パス。
ボトルフックは wine スクリプトを使用して WineLib や Windows アプリケーションをコールし 、レジストリの設定やボトルの他の設定を変更することができます。
このボトルフックのサンプルはドライブレターがY:
にならないように修正しています。そしてユーザーの$HOME
ディレクトリをH:
にしています。
#!/bin/sh rm "$WINEPREFIX/dosdevices/y:" if [ ! -d "$WINEPREFIX/dosdevices/h:" ] then ln -s -f "$HOME" "$WINEPREFIX/dosdevices/h:" fi