ボトルフックを使ったボトルのカスタマイズ
前のページ | 第11章 詳細オプション | 次のページ

## ボトルフックを使ったボトルのカスタマイズ

ボトルフックは CrossOver で作成したボトルを自動的にカスタマイズさせる仕組みです。動作させるにはスクリプトを使用するため、柔軟にカスタマイズできます。例えば、ボトルフックではドライブ名、レジストリ設定、`C:` ドライブの内容などを修正できます。このボトルフックで特に便利なのは、配布先に応じて、またはユーザーごとに、ボトルをカスタマイズできることです。

ボトルフックで作成される３つのレベル：

- CrossOver がroot権限でインストールされている場合、ルート以外のユーザーのボトルを含む、システム上の全てのボトルにシステムワイドフックが適用されます。システムワイドフックはマシンの構成やハードウェアに応じて、ボトルを適応させる場合に便利です。このボトルフックは`$CX_ROOT/support/scripts.d`ディレクトリにあります。

- ユーザーフック - システムワイドフックと同じですが、１ユーザーのボトルだけに適用されます。ユーザーフックはシステムワイドフックが動作した後に動作します。このボトルフックは `~/Library/Application Support/CrossOver/scripts.d`ディレクトリにあります。

- 各ボトルはフックセットを持つことができます。フックセットはルート以外の各ユーザーが使用する管理ボトルの設定に適しています。フックセットは自動的にボトルと一緒にアーカイブされるので、もしボトルが他のコンピューターで復元されても動作します。このボトルフックは `scripts.d` ディレクトリにあります。

それぞれのフックは所定のディレクトリに置かれるシェルスクリプトとしての実行可能ファイルです。フックの名前は `nn.name` の形式でなければいけません。`nn` は２桁の十進数でフックが動作する順番を決定します。`name` はドットとチルダを含まないフックの目的に沿った名前を付けなければいけません。

フックがコールされるイベントの解説：

- ボトルが作成された時

  `hook` create `template`

  `template` パラメーターはボトルのベースとなるテンプレート名（例えば「`win98`」）を示します。

- ボトルがリストアされた時

  `フック` 復元

- ボトルが新しいCrossOverのバージョンにアップグレードされた時

  `フック`の`古いバージョンのボトル`がらのアップグレード

  `old-bottle-version`はボトルが使われていた元のCrossOverのバージョンです。

- ボトルにスタブが作成された時

  `hook` create-stub `published-wineprefix`

  このケースは、管理ボトルをルート以外のユーザーが最初に使用した場合に発生します。この場合、`published-wineprefix` は `/Library/Application Support/CrossOver/Bottles` に存在する、ルートユーザーが参照するコピーを示し、環境変数 `$WINEPREFIX` は作成されたボトルスタブを示します。

- ボトルスタブがアップデートされた時

  `hook` update-stub `published-wineprefix`

  このケースは、`published-wineprefix` の中にある、管理ボトルの参照用コピーを管理者が更新した場合に発生します。ユーザーのボトルスタブは、更新しないでください。

全てのケースでフックはWineに関係して呼び出されます。それは以下の環境変数にセットされます：

`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

前のページ | 上に戻る | 次のページ
新規ドライブの追加、およびドライブ ラベル/シリアル番号のカスタマイズ | ホーム | 第12章 トラブルシューティング