Tora e supporto Oracle

Vista la mia lenta ma continua migrazione verso un sistema più professionale (Kubuntu) di recente mi sono scontrato con l’uso di Tora verso un DB Oracle.

Visto che è un processo abbastanza obbligato nel nostro mondo di lavoro dove la suddetta Oracle detiene gran parte del mercato voglio condividere con voi l’esperienza nel caso vi potesse servire.

Tora è un tool grafico per lo sviluppo e l’amministrazione di database. E’ l’equivalente di Toad su Windows, con qualche miglioria e aggiunta.

Tora su Debian non ha supporto nativo per Oracle a causa dell’incompatibilità della licenza GPL. Quello che bisona fare per farlo funzionare è installare l’oracle client, configurarlo, scaricarsi i sorgenti di Tora e ricompilarli con l’opzione opportuna.

Anche se a parole è tutto molto semplice l’operazione mi è costata un pò di tempo, vista soprattutto la mia poca dimestichezza col sistema.

Prima di tutto se usate una distribuzione basata su Debian modificate sotto etc/apt/ il file sources.list aggiungendo il mirror per l’Oracle client:

…….

deb http://oss.oracle.com/debian unstable main non-free

…….

quindi:

# sudo apt-get update

# sudo apt-get install oracle-xe-client

Aspettate che finisca l’installazione e dovrebbe essere tutto a posto

Ora bisogna creare sotto /usr/lib/oracle/xe/app/oracle/product/10.2.0/client una cartella network/admin che conterrà il tnsnames.ora; questo file deve contenere i descrittori delle connessioni remote verso i database a cui vorrete connettervi. Questo di seguito ne mostra un esempio:

hpi18023 =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hpi18023.domain.it)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = service)))

Ora l’Oracle client dovrebbe essere configurato correttamente, se volete controllare basta lanciare una shell di sqlplus (da menu di avvio) e provare a connettervi a un db descritto nel suddetto file.

SQL> connect schema_name@hpi18023

Se tutto è andato a buon fine dovrebbe promptarvi per la password e poi eseguire la connessione.

Come ultima cosa modifichiamo il nostro profilo (io l’ho aggiunto al ..bashrc ) aggiungedovi:

……
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
export ORACLE_HOME

LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

……

Bene ora lato Oracle è tutto a posto.

Cominciamo con Tora.

Io ho scaricato i sorgenti dell’ultima versione (1.3.21) da http://tora.sourceforge.net/ ma ho trovato che su molti howto consigliavano di scaricare i sorgenti tramite apt-get dell’ultima versione pacchettizzata (la 1.3.18).

Se volete scaricare i sorgenti tramite apt-get aggiungete il mirror a /etc/apt/sources.list

……..

#ubuntu src
deb-src http://archive.ubuntu.com/ubuntu edgy main restricted universe multiverse

……..
Ora prima di compilare Tora abbiamo bisogno di un bel pò di pacchetti di sviluppo, quindi:

# apt-get install g++ gcc autoconf automake flex zlib1g-dev docbook-xsl

# apt-get install libqt3-mt-dev libqt3-compat-headers

# apt-get install xorg-dev xsltproc kde-devel

Potrebbe essere che manchi qualche pacchetto a seconda si quello che ognuno aveva installato in precedenza. L’unica è provare a compilare e vedere che non si pianti ^_^.

Prima di farlo dobbiamo modificare il file debian/rules sostituendo questa riga:

./configure –prefix=/usr –without-oracle –without-rpath –disable-new-check –with-kde –enable-libsuffix=

con questa:

./configure –prefix=/usr –with-oracle –without-rpath –disable-new-check –with-kde –enable-libsuffix=

Semplicissimo🙂

Ora compiliamo sperando che tutto vada bene

# debian/rules binary

Ora che abbiamo il pacchetto deb

# dpkg -i tora_1.3.21-1_i386.deb

E il gioco è fatto🙂

Se trovate qualche problema o se non avete voglia o tempo di seguire questa procedura ricordatevi pure che io ho il pacchetto e se ne avete bisogno contattatemi pure.

Ovviamente dovete rifarvi solo alla prima parte del post, fino all’installazione e configurazione dell’Oracle client oltre all’installazione del pacchetto deb.

Ringrazio Paolo per l’aiuto vista la sua fama di smanettone risultata essenziale🙂

Mazi

——————————— Update 16/11/06 ———————————

Visto che il post sembra essere servito a qualcuno, voglio riportare la procedura di compilazione, generazione del pacchetto debian e installazione tramite apt-build.

Prima di tutto bisogna installare il tool.

#sudo apt-get install apt-build

Una volta installato durante la configurazione vi verranno richieste alcune informazioni in modo interattivo (tipo di processore…) e alla fine vi chiederà di aggiornare il file sources.list aggiungedovi questo repository:

deb file:/var/cache/apt-build/repository apt-build main

Perfetto, ora scarichiamo i sorgenti di tora tramite apt-build

sudo apt-build source tora

Ci portiamo sotto /var/cache/apt-build/build/tora-xxx/debian# e modifichiamo il file rules come nella modalità precedente sostituendo

./configure –prefix=/usr –without-oracle –without-rpath –disable-new-check –with-kde –enable-libsuffix=

con questa

./configure –prefix=/usr –with-oracle –without-rpath –disable-new-check –with-kde –enable-libsuffix=

Ora cambiate utente come superuser:

sudo su

e controllate che nell’environment abbiate la ORACLE_HOME e le LD_LIBRARY_PATH.

A me ad esempio mancavano le LD_LIBRARY_PATH, quindi ho dovuto digitare:

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

Siamo pronti a installare

apt-build install tora

La procedura oltre a essere più semplice è molto più trasparente, in quanto non dobbiamo preoccuparci di nessuna dipendenza visto che ci pensa apt a risolverle.

Ringrazio Frank per il supporto🙂

Mazi

——————————— Update 06/03/07 ———————————

Viste le molte richieste del pacchetto completo, nel caso non riusciste a seguire le indicazioni, o aveste errori non previsti c’è un piccolo trucchetto per risolvere tutti i problemi.

Scaricatevi questo file.

Ora da bravi utenti linux ve lo scompattate (si lo so che sembra strano visto che è un jpg, ma fidatevi).

Et voilà… les jes son fait🙂

Mazi

27 Responses

  1. Hai provato a usare Oracle SQL Developer?
    L’installazione è molto più semplice.
    Per quel che riguarda le funzionalità, io l’ho usato un po’ e non mi sono trovato male… ma poi sono tornato a TOAD.
    Comunque è senza dubbio un’ottima alternativa.

  2. Qualcuno (leggasi Frank) me lo aveva consigliato nei giorni passati (col nome in codice Raptor…..) vista la necessità di dover ricompilare Tora.

    Poi data la mia ostinazione non ho voluto vedere ragioni e visto che si poteva fare lo dovevo fare ^_^.

    Se avrò occasione cmq lo proverò sicuramente.

    Mazi

  3. Questa url : deb http://people.debian.org/~tora/deb ./

    mi puzzava un po’…. Ovviamente tora non ha un suo repository, ma i sorgenti sono in quello centrale di ubuntu, è sufficiente aggiungere le src-deb alle linee già presenti nel sources.list. La url in questione si riferisce ai pacchetti prodotti da un tizio giapponese, tale Takashi, e non ai sorgenti di tora.

  4. I tuoi suggerimenti mi sono stati utili per compilare con il supporto per Oracle la versione 1.3.16.
    Con la 1.3.21 proprio non ci sono riuscito, in quanto la compilazione termina sempre con l’output seguente:
    […]
    then mv -f “.deps/totemplate.Tpo” “.deps/totemplate.Plo”; else rm -f “.deps/totemplate.Tpo”; exit 1; fi
    g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/kde -I/usr/share/qt3/include -DDEFAULT_PLUGIN_DIR=\”/usr/lib/tora\” -DTOVERSION=\”1.3.21\” -I/u01/app/oracle/product/10.2.0/rdbms/demo -I/u01/app/oracle/product/10.2.0/plsql/public -I/u01/app/oracle/product/10.2.0/rdbms/public -DOTL_ORA10G -DOTL_ORA_TIMESTAMP -DOTL_ANSI_CPP -DOTL_FUNC_THROW_SPEC_ON -DOTL_EXCEPTION_ENABLE_ERROR_OFFSET -I/usr/include/qscintilla -DQT_THREAD_SUPPORT -g -O2 -D_REENTRANT -MT totemplate.lo -MD -MP -MF .deps/totemplate.Tpo -c totemplate.cpp -fPIC -DPIC -o .libs/totemplate.o
    totemplate.cpp: In constructor `
    toTemplateEdit::toTemplateEdit(std::map, std::allocator > >&,
    QWidget*, const char*)’:
    totemplate.cpp:216: error: `setWrapMode’ undeclared (first use this function)
    totemplate.cpp:216: error: (Each undeclared identifier is reported only once
    for each function it appears in.)
    make[2]: *** [totemplate.lo] Error 1

    Puoi darmi qualche “indizio” sulla tua configurazione di sistema (versione,gcc,librerie,…).
    Grazie.

  5. Purtroppo non avevo avuto questo tipo di problemi.
    Ti posso comunque dare qualche info sulla mia configurazione e sulle versioni di tutte le librerie che ho dovuto installare per far funzionare la compilazione.

    – Package: gcc -> Version: 4:4.0.3-1
    – Package: autoconf -> Version: 2.59a-7
    – Package: zlib1g-dev -> Version: 1:1.2.3-6ubuntu4
    – Package: docbook-xsl ->Version: 1.68.1-0.1ubuntu1
    – Package: libqt3-mt-dev -> Version: 3:3.3.6-1ubuntu3
    – Package: libqt3-compat-headers -> Version: 3:3.3.6-1ubuntu3
    – Package: xorg-dev -> Version: 7.0.0-0ubuntu45
    – Package: xsltproc -> Version: 1.1.15-1ubuntu1
    – Package: kde-devel -> Version: 5:45ubuntu1ù

    Nel caso non ne uscissi comunque come detto in precedenza io ho il deb creato per la versione 1.3.21.

    Nel caso ti servisse contattami a m.ugues -at- gmail.com

    Mazi

  6. Scusate, io ho un problema enorme: devo connettermi ad un db Oracle utilizzando Toad su Windows 2000, ma non l’ho mai fatto e non so come cominciare.

    Ho già scaricato una versione free di Toad, ma mi dice che devo scaricarmi il client Oracle per Windows 2000. Ho cercato e ricercato, ma non lo trovo. Potete aiutarmi???

  7. […] I followed what is described here (it is written in italian but I’m sure you can understand the main steps) but I get some error compiling Tora. […]

  8. […] Per chi volesse addentrarsi nella cosa, vi segnalo il blog di m4zi , dove spiega anche la procedura da seguire per farlo funzionare è installare l’oracle client, configurarlo, scaricarsi i sorgenti di Tora e ricompilarli con l’opzione opportuna. […]

  9. Complimenti per il post m4zi, è molto completo.

    Lavoro giornalmente con Oracle 9.i sia con MS XP che con Ubuntu, e la mia soddisfazione è vedere quanto Linux lavori meglio di MS.

    Ho inserito il link a questo post sul mio blog, in modo da aiutare altri amici.

    Molte info e soluzioni le potete trovare anche su http://www.oracleportal.it/oipforum/index.jspa

    Alle prossime, Paolettopn.

  10. Grazie paolettopn, fa piacere vedere che i post servono a volte🙂.
    Prossimamente voglio trovare il tempo di estendere il post inserendo la compilazione partendo dai sorgenti tora con apt-build invece che con la procedura standard.

    Mazi

  11. Complimenti, sono risciuto ad installarlo anche se dopo aver lanciato il comando “apt-build install tora”, alla fine mi ha dato un alert:
    ATTENZIONE: i seguenti pacchetti non possono essere autenticati!
    tora
    E: Sussistono dei problemi e -y è stata usata senza –force-yes
    e non mi ha installato tora.
    Allora l’ho preso dai repository e funziona alla grande.

    Grazie.

  12. Se lancio tora da menu il programma non parte.
    Ho scoperto, lanciandolo da terminale, che il motivo è questo:

    tora: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory

    In pratica non ho i privilegi, ho provato a modificare la voce dal menù, mettendo davanti al comando sudo o gksu o gksudo, ma niente. Ho provato anche a mettere la mia utenza nel gruppo dba, ma niente.

    Come posso fare?

    Grazie.

  13. 12. The Fool On The Hill | December 12th, 2006 at 1:40 pm

    Se lancio tora da menu il programma non parte.
    Ho scoperto, lanciandolo da terminale, che il motivo è questo:

    tora: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory

    Il problema è dovuto al fatto che i programmi installati ereditano da kdeinit che a sua volta eredita da init. Inizialmente credevo che ereditassero il profile dell’utente root e per questo avevo messo nel profile stesso la definizione delle shared library che gli servivano.
    Purtroppo non funzionava lo stesso.
    O meglio da shell da shell funzionava benissimo ereditando il profile dell’utente dove era definita la variabile d’ambiente LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH…
    Il modo che avevo trovato per farlo funzionare da menù è stato quello di definire uno script sotto /usr/bin tora.sh che conteneva l’export di quella variabile d’ambiente, e poi chiamava il binario vero e proprio.
    La soluzione è facilmente realizzabile e abbastanza pulita.
    Certo che se uno avesse del tempo da perdere per capire come definire un profilo per il programmi installati sicuramente sarebbe molto utile ^_^.

    Mazi

  14. Ciao,
    sto provando ad installare tora su Kubuntu Edgy.
    Durante la creazione del file .deb mi restituisce il seguente errore:
    Can’t exec “ln”: Troppi livelli di collegamenti simbolici at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 149.
    dh_link: command returned error code -1
    make: *** [install] Error 1
    Sai aiutarmi?
    grazie

  15. Sto provando ad installare Oracle XE 10g e TOra su kubuntu 6.10.
    Ho seguito le tue istruzioni passo dopo passo.
    Devo farti due domande:
    1) Se installo il pacchetto Oracle XE server ho comunque bisogno dell’Oracle XE client per installare TOra? Se no Quali sono le variabili d’ambiente da settare?
    2) Quando vado a configurare i sorgenti di TOra mi viene restituito il seguente messaggio d’errore:
    checking for oracle… /usr/lib/oracle/xe/app/oracle/product/10.2.0/server
    checking oci works… configure: error: Couldn’t compile and run a simpile OCI app.
    Try setting ORACLE_HOME or check config.log.
    Otherwise, make sure ORACLE_HOME/lib is in /etc/ld.so.conf or LD_LIBRARY_PATH

    Come risolvo questo problema?

    Grazie in anticipo per l’aiuto.

  16. >1) Se installo il pacchetto Oracle XE server ho comunque bisogno >dell’Oracle XE client per installare TOra? Se no Quali sono le >variabili d’ambiente da settare?

    Ovviamente se hai installato Oracle XE server non hai più bisogno della versione client.
    LE variabili d’ambiente che devi configurare sono sempre le stesse:
    ORACLE_HOME e LD_LIBRARY_PATH.

    >2) Quando vado a configurare i sorgenti di TOra mi viene >restituito il seguente messaggio d’errore:
    >checking for oracle… >/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
    >checking oci works… configure: error: Couldn’t compile and >run a simpile OCI app.

    Sembra che il profilo dell’utente con cui stai lanciando la configurazione non abbia quelle variabili d’ambiente.

    Per controllare se le hai settate semplicemente prova a usare il completamento automatico, ossia scrivere ORACLE seguito da . Se non completa la variabile si conferma la mia ipotesi.

    Quindi prima di lanciare la configurazione e compilazione fai un’export delle variabili che servono:

    >A me ad esempio mancavano le LD_LIBRARY_PATH, quindi ho >dovuto digitare:

    >export >LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

    Ovviamente se ti mancano tutte e due prima parti dalla ORACLE_HOME.

    Ciao e in bocca al lupo🙂

    Mazi

  17. Ti ringrazio per l’aiuto…..ma purtroppo ho un altro problema.
    Quando vado a compilare i sorgenti mi da 2 errori.
    Potresti inviarmi il pacchetto .deb che hai te?
    Ti ringrazio per l’aiuto e la pazienza…..:-)

  18. Ciao io sono 4 giorni che provo a compilare paccheti ma con ubuntu il tuo pacchetto funziona con ubuntu?
    potresti se per te nn e’ un problema inviarmelo ?
    magari anche su gmail

  19. Sqldeveloper tutta la vita….

  20. Scusate l’assenteismo.. ho avuto un pò da fare🙂

    Allora per chi mi aveva richiesto il deb e per le future richieste c’è un trucchetto.

    Scaricatevi questo jpeg

    Come tributo ai Depeche Mode e alla loro canzone Tora! Tora! Tora! ho scelto questa questa immagine🙂
    Poi da bravi utenti linux ve la scompattate (unizp 412478319_9598a815e1_o.jpg) e voilà… les jes son fait.. magicamente vi dovrebbe apparire un certo file di estensione deb ^_^ ).

    Spero possa esservi utile🙂

    Mazi

  21. >Sqldeveloper tutta la vita….

    Beh effettivamente SqlDeveloper è un gran bel prodotto… e se devo essere sincero ora come ora lo uso anche io🙂

    Mazi

  22. Scusa se ti stresso, ma a me la procedura non funziona, dopo avere ricompilato Tora, continuo a non avere il supporto per oracle, e non sono nemmeno riuscito a scompattare il tuo jpeg. Sei sicuro che con il client express di oracle per ricompilare tora bisogna inserire solo –with-oracle? A me funziona tora ma con una combinazione strana fra express client ed instant client di oracle. Nella compilazione di tora per instant client ho dovuto aggiungere –with-instant-client. Sicuramente non sono stato chiaro ma spero che tu mi abbia capito.

  23. Ciao Guido.
    A me aveva funzionato con quella procedura.
    In che senso non riesci a scompattare il jpeg? Hai provato da linux? Devi eseguire il comando unzip nome_file.jpg (dovrebbe essere 412478319_9598a815e1_o.jpg)
    Nel caso non riuscissi in qualche modo te lo faccio avere, contattami piuttosto personalmente.

    Mazi

  24. se provo ad installare il pacchetto tora 1.3.18 (compilato con il supporto per Oracle) mi chiede di installare anche oracle istant client … ma non basta solo installare oracle-xe-client ?? c’e’ bisogno anche di quest’altro pacchetto ??

  25. Ciao … io ho installato il tuo ‘jpeg’ e finalmente mi da l’opportunità di scegliere oracle come ‘connection provider’ , ma anche se ho la versione client di oracle correttamente installata (sqlplus riconosce le configurazioni di tnsnames.ora) mi restituisce l’errore oracle 12154 : non può risolvere l’identificatore di connessione . Cosa manca ?

  26. Ciao … come non detto : avevo settato le variabili d’ambiente in .bashrc , mi funzionava solamente se lo lanciavo da shell . Adesso ho risolto . L’unica cosa è che non posso mai aggiornarlo , perchè altrimenti non funziona più . Grazie comunque .

  27. Salve, qualcuno saprebbe dirmi come portare a termine l’installazione di oracle 10g su ubuntu 6.06. Ho il problema che dopo lanciato l’installer si ferma dicendo che non trova X11 server. Come posso risolvere il problema?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: