Ubuntu下直接用apt-get安装的Tora只有PostgreSQL一个provider。我按照 "Rebuilding Tora with Oracle Support"这篇文章的方法给Tora加入了Oracle的支持。大致的步骤如下(有几个地方与文章里不同,包括Tora编译不过去的解决办法):
1. 安装Oracle Instant Client
$ sudo apt-get install oracle-xe-client
OIC安装后的目录是/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
2. 把OIC的安装目录加到/etc/ld.so.conf文件里,然后执行ldconfig命令刷新
$ sudo ldconfig
3. 修改/etc/profile,加入一些新的环境变量
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=/usr/lib/oracle
export PATH=$PATH:$ORACLE_HOME/bin
保存好后,重新登录使其生效,可以用env或printenv命令检查。
4. 安装Tora和它的源码(需要有source源)
$ sudo apt-get install tora
$ sudo apt-get source tora
5. 安装编译工具
$ sudo apt-get install build-essential
$ sudo apt-get install autoconf automake flex zlib1g-dev docbook-xsl
$ sudo apt-get install libqt3-mt-dev libqt3-compat-headers
6. 修改源码里的debian/rules这个文件
把这行
./configure –prefix=/usr –without-oracle –without-rpath –disable-new-check –with-kde –enable-libsuffix=
改成
./configure --prefix=/usr --with-oracle=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client --without-rpath --disable-new-check --without-kde --enable-libsuffix=
下面是文章里的改法,后面运行rules脚步时会遇到找不到OIC的问题。
./configure –prefix=/usr –with-instant-client –without-rpath –disable-new-check –without-kde –enable-libsuffix=
7. 编译Tora,成功后安装生成的deb文件(在上一级目录)
$ debian/rules binary
$ sudo apt-get remove tora
$ sudo dpkg -i tora_1.3.18-4ubuntu1_i386.deb
8. 在/usr/lib/oracle目录里建一个文件tnsnames.ora,加入你的Oracle数据库的连接信息
9. 现在运行Tora,就可以看到Oracle的provider了。