免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3079 | 回复: 2
打印 上一主题 下一主题

求解~DBD连oracle报错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-27 16:07 |只看该作者 |倒序浏览
我的oracle客户端装的是12.1版本,用ldd命令看读的是10.1的版本,所以 libclntsh.so.10.1 => not found:

ldd /usr/opt/dc_perl/lib/site_perl/5.12.4/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so

        linux-vdso.so.1 =>  (0x00007fff60dff000)
        libclntsh.so.10.1 => not found
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2c77699000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f2c77415000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2c771f8000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f2c76fde000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f2c76c4a000)
        /lib64/ld-linux-x86-64.so.2 (0x000000369a200000)

然后我在网上搞了个 libclntsh.so.10.1放在对应的目录下ORACLE_HOME/lib,但是ldd之后依然not found。。

我的环境变量应该是没有配错的。。包括ORACLE_HOME,LD_LIBRARY_PATH这两个应该都没问题

想请教该怎么搞??


另外,我试着装个新的DBD::Oracle,但报如下错误,难道只能重新搞个10.1的客户端?



Using DBI 1.622 (for perl 5.012004 on x86_64-linux-thread-multi) installed in /usr/opt/dc_perl/lib/site_perl/5.12.4/x86_64-linux-thread-multi/auto/DBI/

Configuring DBD::Oracle for perl 5.012004 on linux (x86_64-linux-thread-multi)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a linux, Ver#2.6
Using Oracle in /usr/lib/oracle/12.1/client64
DEFINE _SQLPLUS_RELEASE = "1201000200" (CHAR)
Oracle version 12.1.0.2 (12.1)

        Unable to locate an oracle.mk or other suitable *.mk
        file in your Oracle installation.  (I looked in
        /usr/lib/oracle/12.1/client64/rdbms/demo/demo_xe.mk /usr/lib/oracle/12.1/client64/rdbms/lib/oracle.mk /usr/lib/oracle/12.1/client64/rdbms/demo/oracle.mk /usr/lib/oracle/12.1/client64/rdbms/demo/demo_rdbms.mk /usr/lib/oracle/12.1/client64/rdbms/demo/demo_rdbms64.mk /usr/lib/oracle/12.1/client64/rdbms/lib/ins_rdbms.mk /usr/share/oracle/12.1/client64/demo.mk under /usr/lib/oracle/12.1/client64)

        The oracle.mk (or demo_rdbms.mk) file is part of the Oracle
        RDBMS product.  You need to build DBD::Oracle on a
        system which has one of these Oracle components installed.
        (Other *.mk files such as the env_*.mk files will not work.)
        Alternatively you can use Oracle Instant Client.

        In the unlikely event that a suitable *.mk file is installed
        somewhere non-standard you can specify where it is using the -m option:
                perl Makefile.PL -m /path/to/your.mk

        See the appropriate README file for your OS for more information and some alternatives.

     at Makefile.PL line 1187.

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
2 [报告]
发表于 2014-12-01 10:41 |只看该作者
建议你统一都装oracle的server,因为DBD需要根据里面的mk文件和h文件确定如何编译
而client一般是默认不安装这些的(就是那些demo目录)
或者你从其他机器上复制过来.

论坛徽章:
0
3 [报告]
发表于 2014-12-02 12:37 |只看该作者
从 OTN Instant Client 页面下载 Basic 和 SDK Instant Client 程序包。可以使用 zip 文件或 RPM。

以 root 用户身份安装 RPM,例如:

rpm -Uvh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
rpm -Uvh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm

第一个 RPM 将 Oracle 库放在 /usr/lib/oracle/11.2/client64/lib 中,第二个 RPM 在/usr/include/oracle/11.2/client64 中创建头。

如果您使用 ZIP 文件,应该将 SDK 解压缩到 basic 程序包所在的目录中,并手动创建符号链接:

ln -s libclntsh.so.11.1 libclntsh.so

将 Instant Client 目录添加到 /etc/ld.so.conf,或者手动将 LD_LIBRARY_PATH 设置为 /usr/lib/oracle/11.2/client64/lib。您可能还要设置 Oracle 全球化语言环境变量,如 TNS_ADMIN 和 NLS_LANG。如果不设置 NLS_LANG,则采用默认的本地环境。
更新你的ld环境在试吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP