Installare Toad per Oracle su GNU/Linux con Wine

Oggi vedremo come installare Toad for Oracle sulla propria distribuzione.

Toad è il noto tool che permette di amministrare e gestire vari DBMS (in primis Oracle).

  • Toad (ovviamente)
  • Client Oracle
  • Wine

Prima di installare Toad ci sono alcune cose da sistemare. Prima di tutto verifichiamo che Wine sia installato. Per quelli che non lo sanno Wine è un software che implementa le API di Windows permettendo l'esecuzione di programmi scritti per Windows anche su sistemi operativi di tipo UNIX, tra cui Linux.

Dopo esserci assicurati che Wine è installato adesso creiamo una nuova “bottle” o contenitore che conterrà il necessario per installare sia il client Oracle che TOAD.

Da terminale digitiamo:

$ export WINEPREFIX=~/.wine-toad

E' possibile installare Toad anche nel contenitore predefinito di Wine ovvero sotto ~/.wine. L'utilizzo di una directory specifica come contenitore ci facilita la configurazione di parametri specifici per la corretta esecuzione del programma o la possibilità di poter fare un backup completo da spostare su un'altra macchina o eliminare tutto nel caso in cui non funzioni un programma oppure testare diverse versioni di un prodotto senza toccare gli altri contenitori.

In questo modo diciamo a Wine di utilizzare questa directory per salvare le configurazioni e installare i programmi.

Il prossimo passo è utilizzare winecfg che creerà il contenitore con l'alberatura standard di Windows e un set di chiavi di registro, DLL ed eseguibili che serviranno per caricare correttamente un programma.

Invece di utilizzare il Client Oracle che pesa notevolmente (>200MiB), dal sito Oracle scarichiamo l'Instant-Client che è molto più leggero in quanto ha le librerie necessarie per collegarsi al DB Oracle. Per la versione di Toad che proveremo ad installare (ovvero la 9.x) scarichiamo la versione 10.1.x dell'Instant-client (instantclient-basic-win32-10.1.0.5-20060419.zip).

Nel contenitore di Wine che abbiamo creato, creiamo l'alberatura tipica di Oracle:

$ cd $WINEPREFIX/drive_c
$ mkdir -p oracle/bin
$ mkdir -p oracle/network/admin
$ touch oracle/network/admin/tnsnames.ora

Prossimo passo è impostare la variabile d'ambiente ORACLE_HOME in modo che Toad possa vedere il client Oracle correttamente.

Da console apriamo l'Editor di Registro:

$ $WINEPREFIX=~/.wine-toad regedit

e creiamo la chiave HKEY_LOCAL_MACHINE\Software\Oracle e la stringa ORACLE_HOME con valore c:\oracle.

Sempre dall'Editor di Registro creiamo/modifichiamo sotto la chiave HKEY_CURRENT_USER/Environment la stringa PATH con il valore c:\oracle\bin.

Nel caso in cui la variabile PATH contenga già dei valori utilizzare il punto-virgola come separatore. Es:

PATH=c:\windows\system32;c:\oracle\bin

La stessa procedura per l'installazione dell'instant client può essere utilizzata anche dagli utenti Windows sulle proprie macchine

Toad 9.x

L'installazione di Toad 9.x non è particolarmente difficoltosa. Per fortuna funziona out-of-the-box senza l'ausilio di pacchetti o librerie extra. Per farlo, da terminale lanciare l'installer e seguire l'istruzioni a video.

$ $WINEPREFIX=~/wine-toad/ wine toad9.exe

Al termine dell'installazione vedremo nel menu del nostro DE (desktop environment) le voci per lanciare Toad.

L'unica pecca è che ogni volta che lanceremo Toad per usarlo, ci verrà riproposto il wizard di configurazione.

Se proprio non abbiamo voglia di utilizzare Toad per amministrare il nostro DB Oracle dalla nostra Linux box, per fortuna la comunita Linux ci offre un'alternativa altrettanto valida: tora.

tora è un tool che permette di collegarsi con diversi DBMS tra cui Oracle, MySQL/MariaDB, PostgreSQL e via ODBC.

Per gli utilizzatori di Slackware Linux ho messo a disposizione il pacchetto precompilato per l'architettura x86_64 nel mio repository (www.lotar.altervista/slackbuilds/tora). Il pacchetto è compilato senza supporto a Oracle ma è possibile utilizzare lo SlackBuild per ricolpilarlo ed aggiungere facilmente il supporto. Per non installare il mastodontico Client Oracle è possibile utilizzare l'Instant Client seguendo la guida Oracle Instant Client su Linux.