Pre: 为什么要从源码编译
TOra使用OCI连接Oracle数据库,由于版权问题并不附带OCI的支持,而需要用户自行安装Oracle Instant Client,并在编译时指定Client的安装路径,方能提供针对Oracle数据库的支持。
1. 安装Oracle Instant Client 11.1 x86_64
1. 从OTN下载Oracle Instant Client的rpm,我下载的是11.1.0.7.0 for x86_64的版本。
必须下载Basic,可以选择下载其他的几项,建议下载sqlplus进行配置测试。
2. 将rpm包转为deb包,使用alien,没有的同学请使用apt-get安装
alien oracle-instantclient11.1-basic_11.1.0.7.0-2_amd64.rpm
alien oracle-instantclient11.1-sqlplus_11.1.0.7.0-2_amd64.rpm
3. 安装
sudo dpkg -i oracle-instantclient11.1-basic_11.1.0.7.0-2_amd64.deb
sudo dpkg -i oracle-instantclient11.1-sqlplus_11.1.0.7.0-2_amd64.deb
4. 创建或修改/etc/ld.so.conf.d/ora.conf,在其中加入如下两条路径
/usr/lib/oracle/11.1/client64
/usr/lib/oracle/11.1/client64/lib
5. 执行 sudo ldconfig 刷新lib配置
6. 配置ORACLE_HOME和TNS
7. 执行 sqlplus 进行测试
可能会遇到libaio.so.1载入错误,使用apt-get安装libaio即可。
2. 获得TOra 源码
从SourceForge下载源码,链接:http://sourceforge.net/projects/tora/files/
3. 编译安装
1. 使用cmake进行编译,没有的同学可以通过 apt-get 进行安装。
这
里要注意的是由于使用Oracle Instant Client
11.1,默认的oci.h的位置在/usr/include/oracle/11.1/client64,而lib的位置在/usr/lib
/oracle/11.1/client64/lib,故需要在安装时指定如下参数。
cmake
-DORACLE_PATH_INCLUDES=/usr/include/oracle/11.1/client64
-DORACLE_PATH_LIB=/usr/lib/oracle/11.1/client64/lib
-DORACLE_OCI_VERSION=11G
2. cmake成功后make
3. 添加 README.LAYOUT
默
认cmake出来没有这个文件(也许是作者忘了放进src里面?),安装时会报错。需要在放置TOra源码的目录下创建名为README.LAYOUT的
空文件。(其实不进行这一步也没关系,这个文件只是一个doc,不安装TOra也完全可以使用。但是如果不进行这一步,需要直接进入/usr/local
/tora/bin执行tora,或手工将tora的路径添加入PATH变量。)
4. make install
4. 修改启动
如果不修改则可能Oracle 的 TNS Provider无法使用
sudo rm /usr/local/bin/tora
sudo ln /usr/loca/tora/bin/tora /usr/local/bin