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







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.
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
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.
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.
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
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???
[...] 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. [...]
[...] 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. [...]
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.
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
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.
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.
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
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
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.
>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
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…..
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
Sqldeveloper tutta la vita….
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
>Sqldeveloper tutta la vita….
Beh effettivamente SqlDeveloper è un gran bel prodotto… e se devo essere sincero ora come ora lo uso anche io
Mazi
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.
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
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 ??
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 ?
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 .
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?