oracle 库文件解决的方法 bad ELF interpreter: No such file or directory

今天是2014-05-27,今天遇到一个lib问题,再次记录一下。这是一个案例,更是一种解决该问题的方法过程。

当我们在使用sqlplus 登陆unix数据库的时候,有可能出现类似:xxxxxx bad ELF interpreter: No such file or directory的问题。该问题的解决办法也是lib的问题。正常情况例如以下:

[[email protected] ~]# su - oracle
[[email protected] ~]$ ldd `which sqlplus`
        linux-vdso.so.1 =>  (0x00007fff2e5ff000)
        libsqlplus.so => /u01/app/oracle/product/11.2.0/dbhome_1/lib/libsqlplus.so (0x00007fba1fef6000)
        libclntsh.so.11.1 => /u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1 (0x00007fba1d48b000)
        libnnz11.so => /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so (0x00007fba1d0be000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003c93800000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003c94400000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c94000000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003ca3000000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003c93c00000)
        libaio.so.1 => /lib64/libaio.so.1 (0x00007fba1cea4000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003c93400000)
[[email protected] ~]$ 

但有时候可能会缺失对应的lib文件。

那么对于该问题的解决思路是:

1、查看程序缺少的lib文件是那些

2、推断相应的lib文件时缺少还是环境变量问题。

3、假设是lib文件缺少那么须要安装相应的软件包或是复制相应的lib文件。假设是环境变量问题,那就须要更具不同系统设置不同的环境变量了。

另外对于oracle我们安装的32位的是lib32,是64位的那么是lib文件夹。

例如以下是我今天遇到的一个启动RealSync的样例,其它程序类似:

启动Realsync提演示样例如以下错误:

[email protected] scripts]$ ./start
./start: /dsg/bin/archivelog: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
./start: /dsg/bin/archivelog: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
[[email protected] scripts]$ ./stop
INFO: Stop realsync normally...
INFO: Stopping Vagentd ...
INFO: Stopping Loader -s for fullsync loader ...
INFO: Stopping Loader -r for realsync loader ...
[[email protected] scripts]$
[[email protected] scripts]$ exit

那么对于ld-linux.so.2是相应的glibc.i686这个包。因此进行安装:例如以下:

[[email protected] ~]# cd /media/OL6.4\ x86_64\ Disc\ 1\ 20130225/Packages/
[[email protected] Packages]# yum install glibc.i686
Loaded plugins: refresh-packagekit, security
oel6                                                                                            | 3.7 kB     00:00 ...
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package glibc.i686 0:2.12-1.107.el6 will be installed
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.107.el6.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.107.el6.i686
--> Running transaction check
---> Package nss-softokn-freebl.i686 0:3.12.9-11.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================
 Package                             Arch                  Version                         Repository             Size
=======================================================================================================================
Installing:
 glibc                               i686                  2.12-1.107.el6                  oel6                  4.3 M
Installing for dependencies:
 nss-softokn-freebl                  i686                  3.12.9-11.el6                   oel6                  116 k

Transaction Summary
=======================================================================================================================
Install       2 Package(s)

Total download size: 4.4 M
Installed size: 13 M
Is this ok [y/N]: y
Downloading Packages:
-----------------------------------------------------------------------------------------------------------------------
Total                                                                                   60 MB/s | 4.4 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : nss-softokn-freebl-3.12.9-11.el6.i686                                                               1/2
  Installing : glibc-2.12-1.107.el6.i686                                                                                                              2/2
  Verifying  : glibc-2.12-1.107.el6.i686                                                                                                              1/2
  Verifying  : nss-softokn-freebl-3.12.9-11.el6.i686                                                                                                  2/2 

Installed:
  glibc.i686 0:2.12-1.107.el6                                                                                                                             

Dependency Installed:
  nss-softokn-freebl.i686 0:3.12.9-11.el6                                                                                                                 

Complete!
[[email protected] Packages]# su - dsg
[[email protected] bin]$ cd ../ ;cd scripts/;./start
dsg       4416  4391  0 11:48 pts/0    00:00:00 /dsg/bin/archivelog /dsg/log/log.vagentd /dsg/log/archivelog/log.vagentd_archlog 43200 5G
dsg       4426  4391  0 11:48 pts/0    00:00:00 /dsg/bin/archivelog /dsg/log/log.r0 /dsg/log/archivelog/log.r0_archlog 43200 5G
[[email protected] scripts]$ 

这是没有错误提示,查看日志例如以下:

[[email protected] log]$ tail -f log.vagentd
/dsg/bin/vagentd: error while loading shared libraries: libclntsh.so.11.1: wrong ELF class: ELFCLASS64
tail: log.vagentd: file truncated

查看该程序的使用lib信息:

[[email protected] scripts]$ cd ../bin
[[email protected] bin]$ ldd vagentd
        linux-gate.so.1 =>  (0xf77a6000)
        libclntsh.so.11.1 => not found
        libnnz.so => not found
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7773000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xf7743000)
        libdl.so.2 => /lib/libdl.so.2 (0xf773d000)
        libm.so.6 => /lib/libm.so.6 (0xf7713000)
        librt.so.1 => /lib/librt.so.1 (0xf770a000)
        libc.so.6 => /lib/libc.so.6 (0x48cb8000)
        /lib/ld-linux.so.2 (0x48c96000)
        libfreebl3.so => /lib/libfreebl3.so (0xf76bb000)
[[email protected] bin]$ 

能够知道眼下有两个问题,一个是libnnz.so没有,还有一个是libclntsh.so.11.1没有。须要做的是安装对应的软件包或是直接复制对应的lib文件到对应文件夹。

如今须要做的事是改动环境变量

[[email protected] ~]$ 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
####ORACLE#######3333
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=dg2
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
stty erase ^H
[[email protected] ~]$ vi .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
####ORACLE#######3333
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=dg2
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
stty erase ^H
export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:/u01/app/oracle/product/11.2.0/dbhome_1/lib32

再次查看该所需程序lib文件信息:

[[email protected] bin]$ ldd vagentd
        linux-gate.so.1 =>  (0xf77ef000)
        libclntsh.so.11.1 => /u01/app/oracle/product/11.2.0/dbhome_1/lib32/libclntsh.so.11.1 (0xf5af0000)
        libnnz.so => /u01/app/oracle/product/11.2.0/dbhome_1/lib32/libnnz.so (0xf58a3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf5871000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xf5840000)
        libdl.so.2 => /lib/libdl.so.2 (0xf583b000)
        libm.so.6 => /lib/libm.so.6 (0xf5811000)
        librt.so.1 => /lib/librt.so.1 (0xf5808000)
        libc.so.6 => /lib/libc.so.6 (0x48cb8000)
        libnnz11.so => /u01/app/oracle/product/11.2.0/dbhome_1/lib32/libnnz11.so (0xf55ba000)
        libnsl.so.1 => /lib/libnsl.so.1 (0xf559f000)
        /lib/ld-linux.so.2 (0x48c96000)
        libaio.so.1 => not found
        libfreebl3.so => /lib/libfreebl3.so (0xf5550000)
[[email protected] bin]$
那么须要安装libaio.so.1相应的软件包:
[[email protected] Packages]# yum install libaio-
libaio-0.3.107-10.el6.i686.rpm          libaio-0.3.107-10.el6.x86_64.rpm        libaio-devel-0.3.107-10.el6.i686.rpm    libaio-devel-0.3.107-10.el6.x86_64.rpm
[[email protected] Packages]# yum install libaio-0.3.107-10.el6.i686.rpm
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Examining libaio-0.3.107-10.el6.i686.rpm: libaio-0.3.107-10.el6.i686
Marking libaio-0.3.107-10.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package libaio.i686 0:0.3.107-10.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================================
 Package                          Arch                           Version                                   Repository                                             Size
=======================================================================================================================================================================
Installing:
 libaio                           i686                           0.3.107-10.el6                            /libaio-0.3.107-10.el6.i686                            31 k

Transaction Summary
=======================================================================================================================================================================
Install       1 Package(s)

Total size: 31 k
Installed size: 31 k
Is this ok [y/N]: Y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libaio-0.3.107-10.el6.i686                                                                                                                          1/1
  Verifying  : libaio-0.3.107-10.el6.i686                                                                                                                          1/1 

Installed:
  libaio.i686 0:0.3.107-10.el6                                                                                                                                         

Complete!
[[email protected] Packages]# 

再次查看:

[[email protected] bin]$ ldd vagentd
        linux-gate.so.1 =>  (0xf772c000)
        libclntsh.so.11.1 => /u01/app/oracle/product/11.2.0/dbhome_1/lib32/libclntsh.so.11.1 (0xf5a2d000)
        libnnz.so => /u01/app/oracle/product/11.2.0/dbhome_1/lib32/libnnz.so (0xf57e0000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf57ae000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xf577d000)
        libdl.so.2 => /lib/libdl.so.2 (0xf5778000)
        libm.so.6 => /lib/libm.so.6 (0xf574e000)
        librt.so.1 => /lib/librt.so.1 (0xf5745000)
        libc.so.6 => /lib/libc.so.6 (0x48cb8000)
        libnnz11.so => /u01/app/oracle/product/11.2.0/dbhome_1/lib32/libnnz11.so (0xf54f7000)
        libnsl.so.1 => /lib/libnsl.so.1 (0xf54dc000)
        libaio.so.1 => /lib/libaio.so.1 (0xf54da000)
        /lib/ld-linux.so.2 (0x48c96000)
        libfreebl3.so => /lib/libfreebl3.so (0xf548b000)
[[email protected] bin]$ 

启动RealSync:

[[email protected] scripts]$ ./start
dsg       5203     1  0 12:04 pts/1    00:00:00 /dsg/bin/vagentd 50001
dsg       5204  5203  0 12:04 pts/1    00:00:00 /dsg/bin/vagentd 50001
dsg       5214     1  0 12:04 pts/1    00:00:00 /dsg/bin/loader -r -qno 0 1
dsg       5216  5214  0 12:04 pts/1    00:00:00 /dsg/bin/loader -r -qno 0 1
dsg       5213     1  0 12:04 pts/1    00:00:00 /dsg/bin/loader -s -qno 0 1
dsg       5215  5213  0 12:04 pts/1    00:00:00 /dsg/bin/loader -s -qno 0 1
dsg       5199  5174  0 12:04 pts/1    00:00:00 /dsg/bin/archivelog /dsg/log/log.vagentd /dsg/log/archivelog/log.vagentd_archlog 43200 5G
dsg       5208  5174  0 12:04 pts/1    00:00:00 /dsg/bin/archivelog /dsg/log/log.r0 /dsg/log/archivelog/log.r0_archlog 43200 5G
[[email protected] scripts]$ 

至此问题得到解决:

oracle 库文件解决的方法 bad ELF interpreter: No such file or directory

时间: 2024-11-09 01:50:57

oracle 库文件解决的方法 bad ELF interpreter: No such file or directory的相关文章

linux 出现bash: ****: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

误删除glibc-2.12-1.192.el6.x86_64 rpm 包,导致整个系统的所有命令(cd 除外)都不能用. 使用命令出现如下提示: bash: /bin/cp: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or direc

CentOS安装软件出现错误:bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

CentOS安装软件出现错误: bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directorygoogle了一把才发现是64位系统中安装了32位程序解决方法:yum install glibc.i686 重新安装以后还有如下类系错误 再继续安装包 error while loading shared libraries: libstdc++.so.6: cannot open

1、Ora_Q1_/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

操作系统:Linux 3.8.13-16.2.1.el6uek.x86_64 #1 SMP Thu Nov 7 17:01:44 PST 2013 x86_64 x86_64 x86_64 GNU/Linux [Question1](简称[Q1])/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory [原因]64bit的Linux操作系统,无法运行32bit的应用程序 [解决办法]需要安装32bit的glibc库 #

openfire在Centos上启动报/ld-linux.so.2: bad ELF interpreter: No such file or directory

在启动openfire时报下列错误 [[email protected] bin]# ./openfire.sh ./openfire.sh: /opt/openfire/jre/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 解决方法: [[email protected] bin]#yum -y install libldb.i686

redhat6.4执行二进制程序报错:/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

今天同事想在redhat6.4系统环境下,收集IBM3650 m4的所有硬件日志信息,当执行IBM的日志收集程序的时候,出现如下报错: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 原因: 在64位的系统中执行了32位的程序 解决方法: yum -y install glibc.i686

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 错误:

在安装tomcat时报了错: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 本机环境: [[email protected] bin]# uname -a Linux AY140518225150152f97Z 2.6.32-358.6.2.el6.x86_64 #1 SMP Thu May 16 20:59:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email

CentOS /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

使用的时候出现一个错误 bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 是因为64位系统中安装了32位程序 解决方法: yum install glibc.i686 重新安装以后还有如下类系错误 再继续安装包 error while loading shared libraries: libstdc++.so.6: cannot open shared obj

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

解决此类故障 -bash: /usr/sbin/ntpdate: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory [[email protected] ~]#  /usr/sbin/ntpdate time.dnion.com -bash: /usr/sbin/ntpdate: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

JDK1.3安装出现/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory Done.

今天是出道以来第一次安装JDK1.3,大学的时候接触的也已是JDK1.4,而且是在Red Hat Enterprise Linux Server release 6.6上,安装JDK1.3是由于软件组一个项目使用的一个老版本的WebLogic的原因,由于各种原因一直没有升级. 在安装过程中遇到了 /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory错误. ./j2sdk-1_3_1_20-linux-i586.bin