oracle安装报错:libXp.so.6: cannot open shared object file: No such file or directory

本文解决Oracle安装过程中的 UnsatisfiedLinkError 错误,提供适用于不同Linux版本的解决方案,包括安装缺失的库文件。

安装oracle时候遇到错误

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-11-03_12-53-01PM. Please wait ...[oracle@localhost database]$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2011-11-03_12-53-01PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at sun.security.action.LoadLibraryAction.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
        at sun.awt.DebugHelper.<clinit>(Unknown Source)
        at java.awt.Component.<clinit>(Unknown Source)

找了网上的资料,说是缺少安装

#./runInstaller之后出现如下的错误信息:

RedHat AS5 x86上安装Oracle1020

Exception in thread "main" java.lang.UnsatisfiedLinkError:

/tmp/OraInstall2007-12-03_09-02-02AM/jre/1.4.2/lib/i386/libawt.so:libXp.so.6: cannot open shared object file:

  No such file or directory

  at java.lang.ClassLoader$NativeLibrary.load(Native Method)

  at java.lang.ClassLoader.loadLibrary0(Unknown Source)

  at java.lang.ClassLoader.loadLibrary(Unknown Source)

  at java.lang.Runtime.loadLibrary0(Unknown Source)

  at java.lang.System.loadLibrary(Unknown Source)

  at sun.security.action.LoadLibraryAction.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)

  at sun.awt.DebugHelper.(Unknown Source)

  at java.awt.Component.(Unknown Source)

解决方法参见错误二


错误一:

/tmp/OraInstall2007-12-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open  shared object file: No such file or directory occurred..

原因是:缺少支持打印的图形化动态链接库libXp.so.6

这个错误是由于缺少系统安装包,在RHEL5以前的版本,安装xorg-x11-deprecated-libs包即可,这个安装包可以在系统光盘第三张盘中找到(对于RedHat as4.2以前,redhat as4.4是在第四张安装光盘)

xorg-x11-deprecated-libs-6.8.2-31.i386.rpm

 

错误二:

Exception :java.lang.UnsatisfiedLinkError:/usr/java/j2sdk1.4.2_06/jre/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
这个错误也是由于缺少系统安装包造成的,只需安装XFree86-libs包即可,这个安装包可以在系统光盘中找到。

 

在上面两个错误如果出现在RedHat as5版本中,解决如下:

RHEL5中上面的包被libXp所取代了,因此rpm -ivh libXp-1.0.0-8.i386.rpm将包打上后问题即可解决。

在RHEL6中需要安装libXp.i686libXt.i686,libXtst.i686这三个包及他们的devel包。

 

错误三:

error while loading shared libraries: libstdc++-libc6.1-1.so.2

只用执行如下操作 

#cd /usr/lib

#ln -s libstdc++-libc6.2-2.so.3 libstdc++-libc6.1-1.so.2

参考案例

案例一:

RHEL5测试安装oracle10g首先,在执行runInstaller时,系统报错:

You do not have sufficient permissions to access the inventory '/oracle11g/oraInventory'. Installation cannot continue. Make sure that you have read/write permissions to the inventory directory and restart the installer.: Permission denied

这里采用的是新建一个10g用户的方法让10g11g并存,实际上在启动安装程序的时候,oracle会去找/etc/oraInst.locoratab这两个文件(hp/var/opt/oracle

而在oraInst.loc里面定义了inventory_loc的位置和inst_group,由于之前装过了一个11g,里面的定义都是针对11g用户设置的,所以才会报错。解决办法是执行runInstaller -invPtrLoc /oracle10g/oraInst.loc 命令就可以绕过去了,oracle会创建一个新的loc文件。

上一步成功通过之后,紧接着报了下面的错:

Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-08-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-08-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

RHEL5以前这个错误是因为缺少XFree86-libsxorg-x11-deprecated-libs这两个包其中一个(版本不同包不同),而在RHEL5中前面的包被libXp所取代了,因此rpm -ivh libXp-1.0.0-8.i386.rpm将包打上后问题解决。

 

案例二:

在开始安装时出现以下错误:

error while loading shared libraries: libstdc++-libc6.1-1.so.2
解决办法是

#cd /usr/lib
#ln -s libstdc++-libc6.2-2.so.3 libstdc++-libc6.1-1.so.2

Exception :java.lang.UnsatisfiedLinkError:/usr/java/j2sdk1.4.2_06/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
解决办法是
apt-get install libXp.so.6
apt-get install libXt.so.6
apt-get install libxtst6

 

案例三:

RH Linux7.3上使用JasperReport作为报表引擎时,碰到了一样的问题:
Exception :java.lang.UnsatisfiedLinkError:/usr/java/j2sdk1.4.2_06/jre/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory

原因是:缺少支持打印的图形化动态链接库libXp.so.6(也许还有相关的其他库)
解决办法:

下载并安装XFree86-libs-4.2.0-8.i386.rpm/usr/X11R6/lib下就会出现需要的libXp.so.6.2

XFree86-libs-4.2.0-8.i386.rpm的一个下载地址:
ftp://ftp.nluug.nl/vol/1/schoollan/os/linux/RPMS/XFree86-libs-4.2.0-8.i386.rpm

<think> 我们正在解决Cadence IC618工具中strmout运行时缺少libXp.so.6共享库的问题。 根据引用[2]和引用[3],我们知道这个问题通常是由于缺少libXp.so.6库文件引起的。解决方法是安装包含该库的软件包。 在Linux系统中,我们可以通过包管理器来安装缺失的库。具体步骤可能因发行版而异。 对于基于Red Hat的系统(如CentOS、RHEL、Fedora),可以使用yum安装: yum install libXp.i686 # 因为通常EDA工具是32位的,需要32位的库 但是注意,引用[3]中安装了多个库,其中包含了libXp.i686。所以我们也可以使用: yum install libXp libXp.i686 # 安装64位和32位版本,但通常64位系统需要32位兼容库 对于基于Debian的系统(如Ubuntu),可以使用apt安装: apt-get install libxp6:i386 # 安装32位的libxp6 由于我们不确定系统是64位还是32位,但EDA工具通常运行在64位系统上,而它们的二进制文件可能是32位的(需要32位库)或64位的(需要64位库)。但根据错误信息,我们无法直接判断是32位还是64位,但根据路径`dfII/bin/64bit/strmout`,我们可以知道这个strmout是64位的二进制文件,因此我们需要64位的库?然而,在引用[2]中,同样是64位的二进制文件(innovus/bin/64bit/innovus)却需要安装32位的库(libXp.i686)来解决?这似乎矛盾。 实际上,有些64位二进制文件可能依赖32位兼容库(尤其是当这个二进制文件实际上是一个32位程序时)。但是,从路径上看,它位于64bit目录下,通常应该是64位程序。然而,也有可能这个程序内部链接了32位的库?或者系统缺少64位的libXp库? 因此,为了保险起见,我们可以同时安装64位和32位的库(如果有的话)。在Red Hat系列中,我们可以安装: yum install libXp libXp.i686 在Ubuntu中,64位系统安装32位库需要指定架构: apt-get install libxp6 apt-get install libxp6:i386 # 如果需要32位兼容库 但是,由于错误信息并没有指明是32位还是64位,我们可以先尝试安装64位的库,如果问题依旧,再安装32位的库。 另外,引用[3]中安装了多个库,包括libXp.i686,说明在64位系统上安装32位兼容库是常见的做法。 步骤: 1. 确定系统发行版。 2. 根据发行版安装对应的库。 但用户并没有提供系统信息,因此我们可以给出两种方案。 不过,根据引用[2]的解决方法,他们提到了下载Xbin.tgz文件,但我们更倾向于使用包管理器安装,因为这样更安全、方便。 因此,我们建议: 对于Red Hat/CentOS/Fedora系统: sudo yum install libXp libXp.i686 对于Debian/Ubuntu系统: sudo apt-get update sudo apt-get install libxp6 libxp6:i386 安装完成后,再次运行strmout命令。 如果仍然遇到问题,可能需要检查库的路径是否在系统的库搜索路径中。可以使用ldd命令检查依赖关系: ldd /eda/cadence/IC618/tools.lnx86/dfII/bin/64bit/strmout | grep libXp 如果发现libXp.so.6 => not found,则需要确认安装的库是否正确以及路径是否在LD_LIBRARY_PATH中。 另外,如果系统是64位的,安装64位库后,库文件通常位于/usr/lib64,而32位库位于/usr/lib。如果程序是64位的,它会去/usr/lib64下查找,应该能够找到。 如果安装后仍然找不到,可以尝试手动创建符号链接(不推荐,因为包管理器已经处理了,但有时可能因为路径不同而需要): sudo ln -s /usr/lib64/libXp.so.6 /path/to/your/cadence/tools/lib # 如果Cadence有专门的lib目录 或者将库路径添加到LD_LIBRARY_PATH中: export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH 但通常不需要这样做。 总结:先安装对应的库文件,然后再次运行程序。 注意:由于不同Linux发行版包名可能不同,如果上述包名不对,可以尝试搜索: yum search libXp apt search libxp 以找到确切的包名。 根据引用[2]和引用[3]的经验,安装libXp的32位和64位版本通常可以解决问题。 另外,引用[3]中还安装了很多其他库,如果后续还遇到其他库缺失,可以按照类似方法解决。 因此,我们首先尝试安装libXp。 请用户根据系统选择相应的命令安装。 </think> 针对 Cadence IC618 中 `strmout` 运行时缺少 `libXp.so.6` 的问题,以下是系统级解决方案: ### 解决方案步骤 1. **确认依赖库需求** 根据引用[2][^2],EDA 工具(如 Innovus/StrMout)依赖特定版本的 `libXp.so.6`,缺失会导致共享库错误。 2. **安装缺失库(分系统类型)** - **Red Hat/CentOS 系统**(引用[3][^3]): ```bash sudo yum install libXp libXp.i686 # 同时安装64位和32位兼容库 ``` 安装后库路径: - 64位:`/usr/lib64/libXp.so.6` - 32位:`/usr/lib/libXp.so.6` - **Debian/Ubuntu 系统**: ```bash sudo apt-get update sudo apt-get install libxp6 libxp6:i386 # 安装多架构支持 ``` 3. **验证库链接** ```bash ldd /eda/cadence/IC618/tools.lnx86/dfII/bin/64bit/strmout | grep libXp ``` 正常输出应显示:`libXp.so.6 => /usr/lib64/libXp.so.6 (0x...)` 若仍缺失,需手动链接: ```bash sudo ln -s /usr/lib64/libXp.so.6 /eda/cadence/IC618/tools/lib/libXp.so.6 ``` 4. **设置环境变量** 添加库路径到 `LD_LIBRARY_PATH`(引用[1][^1]): ```bash echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64:/usr/lib' >> ~/.bashrc source ~/.bashrc ``` ### 注意事项 - 需要管理员权限执行安装命令 - 32/64位库需匹配工具链架构(IC618默认64位,但部分组件依赖32位库) - 若通过官方包(如引用[2][^2]的 `Xbin.tgz`)安装,需解压到系统库路径 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值