要使用OCCI需要安装Instant Client组件,这个组件是Oracle的安装的一部份或者从http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html上可以下载。但是需要注意的是,Oracle10g自带的和版本11以下的Instant Client需要libstdc++.so.5,而Fedora8自带的是libstdc++.so.6,在链接时会报错:libstdc++.so.5, needed by /usr/lib/oracle/10.2.0.4/client/lib/libocci.so, not found (try using -rpath or -rpath-link)。而如果使用yum安装了compat-libstdc++-33,则会报版本冲突错误:libstdc++.so.5, needed by /usr/lib/oracle/10.2.0.4/client/lib/libocci.so, may conflict with libstdc++.so.6。而使用版本11则已经使用了libstdc++.so.6,可以正常使用(网上也有些其它的解决方法,比如把libstdc++.so.6建一个5的链接等等,不过可能会有其它未知的问题)。
以我成功为案例,安装配置步骤如下:
1)下载并安装oracle-instantclient-basic-11.1.0.1-1.i386.rpm(LITE版也可以);
2)下载并安装oracle-instantclient-devel-11.1.0.1-1.i386.rpm;
3)Include头文件位于/user/include/oracle/11.1.0.1/client,而lib位于/usr/lib/oracle/11.1.0.1/client/lib,可以放到LD_LIBARY_PATH搜索路径中;
4)需要链接occi和clntsh库;
5)可能会报缺失第三方库,如报libaio.so.1, needed by /usr/lib/oracle/11.1.0.1/client/lib/libclntsh.so, not found (try using -rpath or -rpath-link)错,则用yum install libaio安装即可;
6)运行时需要把/user/lib/oracle/11.1.0.1/client/lib放在环境变量PATH或把该路径下的文件拷贝到/usr/lib中;