error while loading shared libraries: libclntsh.so.9.0 错误小记

    技术2022-05-19  24

    error while loading shared libraries: libclntsh.so.9.0 错误小记

    一直玩Oracle 10g,今天在单位虚拟机上装了个9i玩玩,当时没有问题,但是用硬盘拷回家后,在自己的本本上运行,却出现了问题,错误提示信息如下:

    [oracle@ora9iserv bin]$ sqlplus /nolog

    sqlplus: error while loading shared libraries: libclntsh.so.9.0: cannot open shared object file: No such file or directory

    环境变量如下

    [oracle@ora9iserv oracle]$ more .bash_profile

    # .bash_profile

    # Get the aliases and functions

    if [ -f ~/.bashrc ]; then

            . ~/.bashrc

    fi

    # User specific environment and startup programs

    PATH=$PATH:$HOME/bin

    export PATH

    export ORACLE_BASE=/u01/app/oracle

    export ORACLE_OWNER=oracle

    export ORACLE_HOME=/u01/app/oracle/product/9.2.0/db_1

    export ORACLE_SID=orcl

    export ORACLE_TERM=xterm

    export TNS_ADMIN=$ORACLE_HOME/network/admin

    export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

    export PATH=$PATH:$ORACLE_HOME/bin

    CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/

    jlib

    export CLASSPATH

    stty erase ^H  

    执行命令:

    [oracle@ora9iserv bin]$ sqlplus /nolog

    sqlplus: error while loading shared libraries: libclntsh.so.9.0: cannot open shared object file: No such file or directory 

     

    我搞不懂,既然环境变量设置正确,为什么还会提示找不到libclntsh.so.9.0文件呢?

     

    $ORACLE_HOME/lib目录下查找,发现libclntsh.so.9.0文件存在,下面我用

    ldd 命令查看sqlplus的依赖的共享库信息:

    [oracle@ora9i ~]$ ldd /u01/app/oracle/product/9.2.0/db_1/bin/sqlplus

            linux-gate.so.1 =>  (0x00cad000)

            /lib/libcwait.so (0x003b8000)

            libclntsh.so.9.0 => not found

            libwtc9.so => /u01/app/oracle/product/9.2.0/db_1/lib/libwtc9.so (0x00ad9000)

            libdl.so.2 => /lib/libdl.so.2 (0x001bd000)

            libm.so.6 => /lib/libm.so.6 (0x007f2000)

            libpthread.so.0 => /lib/libpthread.so.0 (0x0068e000)

            libnsl.so.1 => /lib/libnsl.so.1 (0x00b38000)

            libc.so.6 => /lib/libc.so.6 (0x001c1000)

            /lib/ld-linux.so.2 (0x00609000) 

     

    发现,确实提示找不到libclntsh.so.9.0相关文件,看来是环境变量的设置没有生效,问题一时陷入困境。

    后来想想, 当时拷贝的时候快下班了,急着赶通勤车,拔数据线拔得比较急,可能是文件损坏了,重新拷贝一次,一切正常。

    [oracle@ORA9ISERV orcl]$ ldd $ORACLE_HOME/bin/sqlplus

            linux-gate.so.1 =>  (0xb7f73000)

            /lib/libcwait.so (0xb7f6f000)

            libclntsh.so.9.0 => /u01/app/oracle/product/9.2.0/db_1/lib/libclntsh.so.9.0 (0xb759a000)

            libwtc9.so => /u01/app/oracle/product/9.2.0/db_1/lib/libwtc9.so (0xb7597000)

            libdl.so.2 => /lib/libdl.so.2 (0xb7593000)

            libm.so.6 => /lib/libm.so.6 (0xb756c000)

            libpthread.so.0 => /lib/libpthread.so.0 (0xb7555000)

            libnsl.so.1 => /lib/libnsl.so.1 (0xb753e000)

            libc.so.6 => /lib/libc.so.6 (0xb73f8000)

            /lib/ld-linux.so.2 (0x00bdc000)

    推荐oracle安装的时候oracle用户的主目录建在/u01/oracle或者/opt/oracle等类似目录。


    最新回复(0)