I ganci di bottiglia sono un meccanismo che vi permette di personalizzare
automaticamente le bottiglie create da CrossOver. Poiché si basano su script,
sono molto flessibili. Un gancio può, ad esempio, modificare l'assegnazione
della lettera del drive ma anche le impostazioni di registro, il contenuto
del drive c:, ecc. Questo meccanismo è particolarmente
utile quando volete personalizzare una bottiglia che volete distribuite ad
un certo numero di macchine, oppure per personalizzare una bottiglia gestita
per ogni specifico utente.
I ganci di bottiglia possono essere creati a tre livelli:
I ganci per tutto il sistema si applicano a tutte le bottiglie nel sistema,
comprese le bottiglie degli utenti non root se CrossOver è stato installato
come root. Sono ideali per adattare le bottiglie alla configurazione o
hardware della macchina. Tali ganci si trovano nella directory
$CX_ROOT/support/scripts.d.
User hooks are the same as system-wide hooks but apply only to one specific
user's bottles. They are run after all the system-wide hooks have been
run. They are located in the ~/Library/Application Support/CrossOver/scripts.d
directory.
Per concludere, ogni bottiglia può avere il suo personale set di
ganci. Questi sono particolarmente adatti per configurare una bottiglia
gestita che possa essere usata da ogni utente non root. Questo è anche
l'unico tipo di gancio che viene allegato alla bottiglia quando questa viene
archiviata; in questo modo si garantisce che essi verranno eseguiti quando
la bottiglia viene ripristinata, anche su un altro computer. Tali ganci si
trovano nella directory scripts.d nella bottiglia.
Each hook is an executable file, usually a shell script, and must be placed
in one of the above hook directories. The name of the hook must be of the
form nn.name, where nn are two
decimal digits that dictate the order in which the hooks are run, and
name must not contain any dot or tilde usually
indicates the hook's purpose.
I ganci vengono quindi chiamati come descritto nei seguenti eventi:
Quando si crea una bottiglia
gancio create modello
Il parametro modello indica il nome del modello
su cui si basa la bottiglia, ad esempio 'win98'.
Quando viene ripristinata una bottiglia
gancio restore
Quando una bottiglia viene aggiornata ad una nuova versione di CrossOver
gancio upgrade-from
vecchia-versione-bottiglia
Dove vecchia-versione-bottiglia è la versione di
CrossOver con cui è stata usata la bottiglia l'ultima volta. Ciò può aiutarvi
a stabilire quanto sia datata la bottiglia, ma notate che i ganci vengono
chiamati solo dopo che CrossOver ha aggiornato la bottiglia.
Quando si è creato un frammento di bottiglia
gancio create-stub
prefissowine-gestito
Questo può accadere quando una bottiglia gestita viene usata in un account
non root per la prima volta. In tal caso la variabile d'ambiente
$WINEPREFIX punta al frammento di bottiglia appena creato,
mentre prefissowine-gestito punta alla copia di
riferimento della root in
.
/opt/cxoffice/support
Quando un frammento di bottiglia viene aggiornato
gancio update-stub
prefissowine-gestito
Ciò accade quando l'amministratore ha aggiornato la copia di riferimento
della bottiglia gestita in prefissowine-gestito
ed il frammento di bottiglia dell'utente non deve essere aggiornato.
In tutti i casi i ganci vengono chiamati nel contesto Wine. Ciò significa che essi possono contare sulle seguenti variabili d'ambiente impostate:
CX_ROOT
Contiene il percorso assoluto alla directory in cui CrossOver è installato.
CX_BOTTLE
Contiene il nome della bottiglia corrente.
WINEPREFIX
Contiene il percorso assoluto alla directory della bottiglia.
I ganci di bottiglia possono anche usare lo script wine per chiamare Winelib o le applicazioni Windows per modificare le impostazioni di registro o altri aspetti della bottiglia.
Ecco un esempio di gancio di bottiglia che modifica l'assegnazione della
lettera al drive in modo che non ci sia drive Y: e che
il drive H: punti alla directory $HOME
dell'utente.
#!/bin/sh
rm "$WINEPREFIX/dosdevices/y:"
if [ ! -d "$WINEPREFIX/dosdevices/h:" ]
then
ln -s -f "$HOME" "$WINEPREFIX/dosdevices/h:"
fi