【问题标题】:Error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2015-10-28 07:08:24
【问题描述】:

最近几天我遇到了一个特殊的问题。以下是详细信息。

我正在尝试在 EC2(类似 redhat)实例上安装 oracle xe 客户端。我正在使用 aws 提供的 cloudformation 来执行此操作,它基本上首先启动实例,然后运行我们作为 root 用户提供的所有脚本。安装时会打印以下错误消息:

案例 1)当我尝试使用完整路径运行它时 -

/opt/oracle/product/11.2.0/xe/bin/sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

案例 2)当我只使用 sqlplus 关键字运行它时

sqlplus: command not found

Cloudformation 将在启动后首先配置实例,然后只有我才能登录到实例。现在,当我登录到实例时,sqlplus 命令可以完美运行,没有任何问题。

当我回显环境变量等时,我得到了正确的输出。我也把所有东西都放在适当的地方。在配置时,我创建了多个用户,他们也可以毫无问题地访问 sqlplus。

以下是我尝试安装 oracle xe 的方式,因为我有类似的要求。

a) 在您的 $HOME 中下载适用于 Linux 64 的 Oracle 11.2 XE

b) 解压你得到的 zip 文件

c) 在不安装的情况下解压 rpm 文件的内容(我们不需要在服务器上运行 Oracle RDBMS)然后

        mkdir ~/Oracle11XE-binaries
        cd ~/Oracle11XE-binaries

        # extract all the binaries from the RPM (rather than installing the RPM)
        rpm2cpio ../Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm  | cpio -idmv

        sudo mkdir /opt/oracle
        sudo mv u01/app/oracle/product /opt/oracle

        # clean up downloaded and extracted files (they are BIG)
        cd
        rm -rf Disk1 oracle-xe-11.2.0-1.0.x86_64.rpm.zip

        echo 'export ORACLE_HOME=/opt/oracle/product/11.2.0/xe
        export PATH=$PATH:$ORACLE_HOME/bin
        export LD_LIBRARY_PATH=$ORACLE_HOME/lib
        export TNS_ADMIN=$ORACLE_HOME/network/admin' | sudo tee /etc/profile.d/oracle.sh

        # source it so it takes effect in the current session
        . /etc/profile.d/oracle.sh
        ldconfig

我知道这个问题很常见,但我没有找到解决办法。

下面是 ldconfig -p 的输出(如果需要,但不包含 libsqlplus.so)

 libz.so.1 (libc6,x86-64) => /lib64/libz.so.1
        libyaml-0.so.2 (libc6,x86-64) => /usr/lib64/libyaml-0.so.2
        libxtables.so.10 (libc6,x86-64) => /lib64/libxtables.so.10
        libxslt.so.1 (libc6,x86-64) => /usr/lib64/libxslt.so.1
        libxml2.so.2 (libc6,x86-64) => /usr/lib64/libxml2.so.2
        libxcb.so.1 (libc6,x86-64) => /usr/lib64/libxcb.so.1
        libxcb-xvmc.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xvmc.so.0
        libxcb-xv.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xv.so.0
        libxcb-xtest.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xtest.so.0
        libxcb-xselinux.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xselinux.so.0
        libxcb-xinerama.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xinerama.so.0
        libxcb-xf86dri.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xf86dri.so.0
        libxcb-xfixes.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xfixes.so.0
        libxcb-xevie.so.0 (libc6,x86-64) => /usr/lib64/libxcb-xevie.so.0
        libxcb-sync.so.0 (libc6,x86-64) => /usr/lib64/libxcb-sync.so.0
        libxcb-shm.so.0 (libc6,x86-64) => /usr/lib64/libxcb-shm.so.0
        libxcb-shape.so.0 (libc6,x86-64) => /usr/lib64/libxcb-shape.so.0
        libxcb-screensaver.so.0 (libc6,x86-64) => /usr/lib64/libxcb-screensaver.so.0
        libxcb-res.so.0 (libc6,x86-64) => /usr/lib64/libxcb-res.so.0
        libxcb-render.so.0 (libc6,x86-64) => /usr/lib64/libxcb-render.so.0
        libxcb-record.so.0 (libc6,x86-64) => /usr/lib64/libxcb-record.so.0
        libxcb-randr.so.0 (libc6,x86-64) => /usr/lib64/libxcb-randr.so.0
        libxcb-glx.so.0 (libc6,x86-64) => /usr/lib64/libxcb-glx.so.0
        libxcb-dri2.so.0 (libc6,x86-64) => /usr/lib64/libxcb-dri2.so.0
        libxcb-dpms.so.0 (libc6,x86-64) => /usr/lib64/libxcb-dpms.so.0
        libxcb-damage.so.0 (libc6,x86-64) => /usr/lib64/libxcb-damage.so.0
        libxcb-composite.so.0 (libc6,x86-64) => /usr/lib64/libxcb-composite.so.0
        libwrap.so.0 (libc6,x86-64) => /lib64/libwrap.so.0
        libverto.so.0 (libc6,x86-64) => /usr/lib64/libverto.so.0
        libverto.so (libc6,x86-64) => /usr/lib64/libverto.so
        libverto-k5ev.so.0 (libc6,x86-64) => /usr/lib64/libverto-k5ev.so.0
        libverto-k5ev.so (libc6,x86-64) => /usr/lib64/libverto-k5ev.so
        libuuid.so.1 (libc6,x86-64) => /lib64/libuuid.so.1
        libutil.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libutil.so.1
        libutempter.so.0 (libc6,x86-64) => /usr/lib64/libutempter.so.0
        libuser.so.1 (libc6,x86-64) => /usr/lib64/libuser.so.1
        libungif.so.4 (libc6,x86-64) => /usr/lib64/libungif.so.4
        libudev.so.0 (libc6,x86-64) => /lib64/libudev.so.0
        libtinfo.so.5 (libc6,x86-64) => /lib64/libtinfo.so.5
        libtic.so.5 (libc6,x86-64) => /usr/lib64/libtic.so.5
        libthread_db.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libthread_db.so.1
        libtasn1.so.3 (libc6,x86-64) => /usr/lib64/libtasn1.so.3
        libsysfs.so.2 (libc6,x86-64) => /usr/lib64/libsysfs.so.2
        libstdc++.so.6 (libc6,x86-64) => /usr/lib64/libstdc++.so.6
        libssl3.so (libc6,x86-64) => /usr/lib64/libssl3.so
        libssl.so.10 (libc6,x86-64) => /usr/lib64/libssl.so.10
        libssh2.so.1 (libc6,x86-64) => /usr/lib64/libssh2.so.1
        libss.so.2 (libc6,x86-64) => /usr/lib64/libss.so.2
        libsqlite3.so.0 (libc6,x86-64) => /usr/lib64/libsqlite3.so.0
        libsoftokn3.so (libc6,x86-64) => /usr/lib64/libsoftokn3.so
        libsmime3.so (libc6,x86-64) => /usr/lib64/libsmime3.so
        libslang.so.2 (libc6,x86-64) => /usr/lib64/libslang.so.2
        libsepol.so.1 (libc6,x86-64) => /lib64/libsepol.so.1
        libselinux.so.1 (libc6,x86-64) => /usr/lib64/libselinux.so.1
        libsasl2.so.2 (libc6,x86-64) => /usr/lib64/libsasl2.so.2
        libruby.so.2.0 (libc6,x86-64) => /usr/lib64/libruby.so.2.0
        librt.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/librt.so.1
        librpmsign.so.1 (libc6,x86-64) => /usr/lib64/librpmsign.so.1
        librpmio.so.3 (libc6,x86-64) => /usr/lib64/librpmio.so.3
        librpmbuild.so.3 (libc6,x86-64) => /usr/lib64/librpmbuild.so.3
        librpm.so.3 (libc6,x86-64) => /usr/lib64/librpm.so.3
        libresolv.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libresolv.so.2
        libreadline.so.6 (libc6,x86-64) => /lib64/libreadline.so.6
        libp11-kit.so.0 (libc6,x86-64) => /usr/lib64/libp11-kit.so.0
        libpython2.7.so.1.0 (libc6,x86-64) => /usr/lib64/libpython2.7.so.1.0
        libpython2.7.so (libc6,x86-64) => /usr/lib64/libpython2.7.so
        libpwquality.so.1 (libc6,x86-64) => /lib64/libpwquality.so.1
        libpthread.so.0 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libpthread.so.0
        libpth.so.20 (libc6,x86-64) => /usr/lib64/libpth.so.20
        libpsl.so.0 (libc6,x86-64) => /usr/lib64/libpsl.so.0
        libproc-3.2.8.so (libc6,x86-64) => /lib64/libproc-3.2.8.so
        libpopt.so.0 (libc6,x86-64) => /lib64/libpopt.so.0
        libpng12.so.0 (libc6,x86-64) => /usr/lib64/libpng12.so.0
        libpng.so.3 (libc6,x86-64) => /usr/lib64/libpng.so.3
        libplds4.so (libc6,x86-64) => /lib64/libplds4.so
        libplc4.so (libc6,x86-64) => /lib64/libplc4.so
        libpipeline.so.1 (libc6,x86-64) => /usr/lib64/libpipeline.so.1
        libpcreposix.so.0 (libc6,x86-64) => /usr/lib64/libpcreposix.so.0
        libpcrecpp.so.0 (libc6,x86-64) => /usr/lib64/libpcrecpp.so.0
        libpcre.so.0 (libc6,x86-64) => /lib64/libpcre.so.0
        libpcprofile.so (libc6,x86-64, OS ABI: Linux 2.6.35) => /usr/lib64/libpcprofile.so
        libpci.so.3 (libc6,x86-64) => /lib64/libpci.so.3
        libparted-2.1.so.0 (libc6,x86-64) => /lib64/libparted-2.1.so.0
        libpanelw.so.5 (libc6,x86-64) => /usr/lib64/libpanelw.so.5
        libpanel.so.5 (libc6,x86-64) => /usr/lib64/libpanel.so.5
        libpamc.so.0 (libc6,x86-64) => /lib64/libpamc.so.0
        libpam_misc.so.0 (libc6,x86-64) => /lib64/libpam_misc.so.0
        libpam.so.0 (libc6,x86-64) => /lib64/libpam.so.0
        libopts.so.25 (libc6,x86-64) => /usr/lib64/libopts.so.25
        libopcodes-2.23.52.0.1-16.47.amzn1.so (libc6,x86-64) => /usr/lib64/libopcodes-2.23.52.0.1-16.47.amzn1.so
        libnuma.so.1 (libc6,x86-64) => /usr/lib64/libnuma.so.1
        libnss3.so (libc6,x86-64) => /usr/lib64/libnss3.so
        libnssutil3.so (libc6,x86-64) => /usr/lib64/libnssutil3.so
        libnsssysinit.so (libc6,x86-64) => /usr/lib64/libnsssysinit.so
        libnsspem.so (libc6,x86-64) => /usr/lib64/libnsspem.so
        libnssdbm3.so (libc6,x86-64) => /usr/lib64/libnssdbm3.so
        libnssckbi.so (libc6,x86-64) => /usr/lib64/libnssckbi.so
        libnss_nisplus.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnss_nisplus.so.2
        libnss_nis.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnss_nis.so.2
        libnss_hesiod.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnss_hesiod.so.2
        libnss_files.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnss_files.so.2
        libnss_dns.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnss_dns.so.2
        libnss_db.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnss_db.so.2
        libnss_compat.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnss_compat.so.2
        libnspr4.so (libc6,x86-64) => /lib64/libnspr4.so
        libnsl.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libnsl.so.1
        libnih.so.1 (libc6,x86-64) => /lib64/libnih.so.1
        libnih-dbus.so.1 (libc6,x86-64) => /lib64/libnih-dbus.so.1
        libnewt.so.0.52 (libc6,x86-64) => /usr/lib64/libnewt.so.0.52
        libncursesw.so.5 (libc6,x86-64) => /lib64/libncursesw.so.5
        libncurses.so.5 (libc6,x86-64) => /lib64/libncurses.so.5
        libmp.so.3 (libc6,x86-64) => /usr/lib64/libmp.so.3
        libmount.so.1 (libc6,x86-64) => /lib64/libmount.so.1
        libmenuw.so.5 (libc6,x86-64) => /usr/lib64/libmenuw.so.5
        libmenu.so.5 (libc6,x86-64) => /usr/lib64/libmenu.so.5
        libmemusage.so (libc6,x86-64, OS ABI: Linux 2.6.35) => /usr/lib64/libmemusage.so
        libmagic.so.1 (libc6,x86-64) => /usr/lib64/libmagic.so.1
        libm.so.6 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libm.so.6
        liblzma.so.5 (libc6,x86-64) => /usr/lib64/liblzma.so.5
        liblwres.so.80 (libc6,x86-64) => /usr/lib64/liblwres.so.80
        liblvm2cmd.so.2.02 (libc6,x86-64) => /lib64/liblvm2cmd.so.2.02
        liblvm2app.so.2.2 (libc6,x86-64) => /lib64/liblvm2app.so.2.2
        liblua-5.1.so (libc6,x86-64) => /usr/lib64/liblua-5.1.so
        libldif-2.4.so.2 (libc6,x86-64) => /lib64/libldif-2.4.so.2
        libldap_r-2.4.so.2 (libc6,x86-64) => /lib64/libldap_r-2.4.so.2
        libldap-2.4.so.2 (libc6,x86-64) => /lib64/libldap-2.4.so.2
        liblcms2.so.2 (libc6,x86-64) => /usr/lib64/liblcms2.so.2
        liblber-2.4.so.2 (libc6,x86-64) => /lib64/liblber-2.4.so.2
        libk5crypto.so.3 (libc6,x86-64) => /lib64/libk5crypto.so.3
        libkrb5support.so.0 (libc6,x86-64) => /lib64/libkrb5support.so.0
        libkrb5.so.3 (libc6,x86-64) => /lib64/libkrb5.so.3
        libkmod.so.2 (libc6,x86-64) => /usr/lib64/libkmod.so.2
        libkeyutils.so.1 (libc6,x86-64) => /lib64/libkeyutils.so.1
        libkdb5.so.6 (libc6,x86-64) => /usr/lib64/libkdb5.so.6
        libkadm5srv_mit.so.8 (libc6,x86-64) => /usr/lib64/libkadm5srv_mit.so.8
        libkadm5clnt_mit.so.8 (libc6,x86-64) => /usr/lib64/libkadm5clnt_mit.so.8
        libjpeg.so.62 (libc6,x86-64) => /usr/lib64/libjpeg.so.62
        libisccfg.so.82 (libc6,x86-64) => /usr/lib64/libisccfg.so.82
        libisccc.so.80 (libc6,x86-64) => /usr/lib64/libisccc.so.80
        libisc.so.83 (libc6,x86-64) => /usr/lib64/libisc.so.83
        libip6tc.so.0 (libc6,x86-64) => /lib64/libip6tc.so.0
        libip4tc.so.0 (libc6,x86-64) => /lib64/libip4tc.so.0
        libiptc.so.0 (libc6,x86-64) => /lib64/libiptc.so.0
        libidn.so.11 (libc6,x86-64) => /lib64/libidn.so.11
        libicuuc.so.50 (libc6,x86-64) => /usr/lib64/libicuuc.so.50
        libicutu.so.50 (libc6,x86-64) => /usr/lib64/libicutu.so.50
        libicutest.so.50 (libc6,x86-64) => /usr/lib64/libicutest.so.50
        libiculx.so.50 (libc6,x86-64) => /usr/lib64/libiculx.so.50
        libicule.so.50 (libc6,x86-64) => /usr/lib64/libicule.so.50
        libicui18n.so.50 (libc6,x86-64) => /usr/lib64/libicui18n.so.50
        libicuio.so.50 (libc6,x86-64) => /usr/lib64/libicuio.so.50
        libicudata.so.50 (libc6,x86-64) => /usr/lib64/libicudata.so.50
        libhistory.so.6 (libc6,x86-64) => /usr/lib64/libhistory.so.6
        libhesiod.so.0 (libc6,x86-64) => /usr/lib64/libhesiod.so.0
        libgthread-2.0.so.0 (libc6,x86-64) => /usr/lib64/libgthread-2.0.so.0
        libgssrpc.so.4 (libc6,x86-64) => /lib64/libgssrpc.so.4
        libgssapi_krb5.so.2 (libc6,x86-64) => /lib64/libgssapi_krb5.so.2
        libgpm.so.2 (libc6,x86-64) => /usr/lib64/libgpm.so.2
        libgpgme.so.11 (libc6,x86-64) => /usr/lib64/libgpgme.so.11
        libgpgme-pthread.so.11 (libc6,x86-64) => /usr/lib64/libgpgme-pthread.so.11
        libgpg-error.so.0 (libc6,x86-64) => /lib64/libgpg-error.so.0
        libgobject-2.0.so.0 (libc6,x86-64) => /usr/lib64/libgobject-2.0.so.0
        libgmpxx.so.4 (libc6,x86-64) => /usr/lib64/libgmpxx.so.4
        libgmp.so.3 (libc6,x86-64) => /usr/lib64/libgmp.so.3
        libgmodule-2.0.so.0 (libc6,x86-64) => /usr/lib64/libgmodule-2.0.so.0
        libglib-2.0.so.0 (libc6,x86-64) => /usr/lib64/libglib-2.0.so.0
        libgio-2.0.so.0 (libc6,x86-64) => /usr/lib64/libgio-2.0.so.0
        libgif.so.4 (libc6,x86-64) => /usr/lib64/libgif.so.4
        libgdbm.so.2 (libc6,x86-64) => /usr/lib64/libgdbm.so.2
        libgcrypt.so.11 (libc6,x86-64) => /usr/lib64/libgcrypt.so.11
        libgcc_s.so.1 (libc6,x86-64) => /lib64/libgcc_s.so.1
        libfreetype.so.6 (libc6,x86-64) => /usr/lib64/libfreetype.so.6
        libfreebl3.so (libc6,x86-64) => /lib64/libfreebl3.so
        libfreebl3.so (libc6,x86-64) => /usr/lib64/libfreebl3.so
        libformw.so.5 (libc6,x86-64) => /usr/lib64/libformw.so.5
        libform.so.5 (libc6,x86-64) => /usr/lib64/libform.so.5
        libfontenc.so.1 (libc6,x86-64) => /usr/lib64/libfontenc.so.1
        libfontconfig.so.1 (libc6,x86-64) => /usr/lib64/libfontconfig.so.1
        libfipscheck.so.1 (libc6,x86-64) => /usr/lib64/libfipscheck.so.1
        libffi.so.6 (libc6,x86-64) => /usr/lib64/libffi.so.6
        libe2p.so.2 (libc6,x86-64) => /usr/lib64/libe2p.so.2
        libext2fs.so.2 (libc6,x86-64) => /usr/lib64/libext2fs.so.2
        libexslt.so.0 (libc6,x86-64) => /usr/lib64/libexslt.so.0
        libexpat.so.1 (libc6,x86-64) => /lib64/libexpat.so.1
        libelf.so.1 (libc6,x86-64) => /usr/lib64/libelf.so.1
        libedit.so.0 (libc6,x86-64) => /usr/lib64/libedit.so.0
        libdns.so.81 (libc6,x86-64) => /usr/lib64/libdns.so.81
        libdmraid.so.1 (libc6,x86-64) => /lib64/libdmraid.so.1
        libdmraid.so (libc6,x86-64) => /lib64/libdmraid.so
        libdmraid-events-isw.so.1 (libc6,x86-64) => /lib64/libdmraid-events-isw.so.1
        libdmraid-events-isw.so (libc6,x86-64) => /lib64/libdmraid-events-isw.so
        libdl.so.2 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libdl.so.2
        libdevmapper.so.1.02 (libc6,x86-64) => /lib64/libdevmapper.so.1.02
        libdevmapper-event.so.1.02 (libc6,x86-64) => /lib64/libdevmapper-event.so.1.02
        libdevmapper-event-lvm2thin.so (libc6,x86-64) => /lib64/libdevmapper-event-lvm2thin.so
        libdevmapper-event-lvm2snapshot.so (libc6,x86-64) => /lib64/libdevmapper-event-lvm2snapshot.so
        libdevmapper-event-lvm2raid.so (libc6,x86-64) => /lib64/libdevmapper-event-lvm2raid.so
        libdevmapper-event-lvm2mirror.so (libc6,x86-64) => /lib64/libdevmapper-event-lvm2mirror.so
        libdevmapper-event-lvm2.so.2.02 (libc6,x86-64) => /lib64/libdevmapper-event-lvm2.so.2.02
        libdbus-1.so.3 (libc6,x86-64) => /lib64/libdbus-1.so.3
        libdb-4.7.so (libc6,x86-64) => /lib64/libdb-4.7.so
        libdb-4.7.so (libc6,x86-64) => /usr/lib64/libdb-4.7.so
        libcurl.so.4 (libc6,x86-64) => /usr/lib64/libcurl.so.4
        libcryptsetup.so.4 (libc6,x86-64) => /lib64/libcryptsetup.so.4
        libcrypto.so.10 (libc6,x86-64) => /lib64/libcrypto.so.10
        libcrypt.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libcrypt.so.1
        libcrack.so.2 (libc6,x86-64) => /usr/lib64/libcrack.so.2
        libcpupower.so.0 (libc6,x86-64) => /usr/lib64/libcpupower.so.0
        libcom_err.so.2 (libc6,x86-64) => /usr/lib64/libcom_err.so.2
        libcidn.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libcidn.so.1
        libcap.so.2 (libc6,x86-64) => /lib64/libcap.so.2
        libcap-ng.so.0 (libc6,x86-64) => /lib64/libcap-ng.so.0
        libc.so.6 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libc.so.6
        libbz2.so.1 (libc6,x86-64) => /lib64/libbz2.so.1
        libblkid.so.1 (libc6,x86-64) => /lib64/libblkid.so.1
        libbind9.so.80 (libc6,x86-64) => /usr/lib64/libbind9.so.80
        libbfd-2.23.52.0.1-16.47.amzn1.so (libc6,x86-64) => /usr/lib64/libbfd-2.23.52.0.1-16.47.amzn1.so
        libauparse.so.0 (libc6,x86-64) => /lib64/libauparse.so.0
        libaudit.so.1 (libc6,x86-64) => /lib64/libaudit.so.1
        libattr.so.1 (libc6,x86-64) => /lib64/libattr.so.1
        libassuan.so.0 (libc6,x86-64) => /usr/lib64/libassuan.so.0
        libasound.so.2 (libc6,x86-64) => /lib64/libasound.so.2
        libanl.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libanl.so.1
        libaio.so.1.0.0 (libc6,x86-64) => /lib64/libaio.so.1.0.0
        libaio.so.1 (libc6,x86-64) => /lib64/libaio.so.1
        libacl.so.1 (libc6,x86-64) => /lib64/libacl.so.1
        libX11.so.6 (libc6,x86-64) => /usr/lib64/libX11.so.6
        libX11-xcb.so.1 (libc6,x86-64) => /usr/lib64/libX11-xcb.so.1
        libXtst.so.6 (libc6,x86-64) => /usr/lib64/libXtst.so.6
        libXrender.so.1 (libc6,x86-64) => /usr/lib64/libXrender.so.1
        libXi.so.6 (libc6,x86-64) => /usr/lib64/libXi.so.6
        libXfont.so.1 (libc6,x86-64) => /usr/lib64/libXfont.so.1
        libXext.so.6 (libc6,x86-64) => /usr/lib64/libXext.so.6
        libXau.so.6 (libc6,x86-64) => /usr/lib64/libXau.so.6
        libSegFault.so (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libSegFault.so
        libSM.so.6 (libc6,x86-64) => /usr/lib64/libSM.so.6
        libICE.so.6 (libc6,x86-64) => /usr/lib64/libICE.so.6
        libBrokenLocale.so.1 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libBrokenLocale.so.1
        ld-linux-x86-64.so.2 (libc6,x86-64) => /lib64/ld-linux-x86-64.so.2

【问题讨论】:

  • 我很困惑 - 你什么时候看到错误,什么时候可以正常工作?什么试图运行 SQL*Plus - 另一个脚本,它可能会在内部重置环境,或者通过 su/sudo 运行(并获得一个安全的环境)?
  • @AlexPoole - 步骤如下 - 1)正在配置实例,当时脚本运行并且我写了一个日志。在此期间脚本应该安装 oracle xe 然后连接到 db 并创建一个模式,这里我得到了错误。完全运行脚本后,另一个脚本将日志上传到某个外部位置,我稍后会从该位置下载,从这个日志中我看到了错误。 2)之后我登录到实例并检查所有东西是否正常工作。当时我看到 sqlplus 工作正常
  • 那么你有一个脚本调用另一个脚本来安装Oracle XE吗?然后是连接到数据库的单独脚本?问题脚本 (. /etc/profile.d/oracle.sh) 中显示的环境设置不会对父脚本/shell 或其他任何运行的脚本产生任何影响。在尝试连接到数据库之前,您可能只需要再次获取该文件。不过,这个问题并没有全貌。如果有一个顶级脚本调用了您所显示的内容,您可以添加吗?
  • 是的,这就是正在发生的事情,我有一个父脚本正在调用另一个安装 oracle xe 的脚本,然后还有另一个连接到数据库的脚本。我会尝试你的建议,然后我会告诉你。

标签: linux oracle amazon-web-services amazon-ec2 sqlplus


【解决方案1】:

如果您的父脚本调用(但不来源)两个子脚本,则第一个子脚本所做的任何环境更改都不会影响父脚本或另一个子脚本。

举个简单的例子,假设您有一个 install.sh 脚本,其中包含:

#!/bin/bash
install_oraclexe.sh
create_schema.sh

其中install_oraclexe.sh 包含您在步骤c 中显示的命令,包括使用. /etc/profile.d/oracle.sh 获取环境脚本; create_schema.sh 执行 SQL*Plus。

install_oraclexe.sh 内,环境被修改,PATH、LD_LIBRARY_PATH 等可用,并且具有允许您稍后在同一子脚本中运行 SQL*Plus 的值。但这些环境更改对该脚本可见。当它退出并且控制权返回给父脚本时,它的 环境没有被触及,并且它不知道孩子做了什么。然后当它执行 create_schema.sh 脚本时,它仍然没有 Oracle 特定的环境设置,因此第二个子脚本也没有这些设置。

您可以将环境更改的源命令移动(或复制)到父脚本:

#!/bin/bash
install_oraclexe.sh
. /etc/profile.d/oracle.sh
create_schema.sh

或者更简洁地将其添加到create_schema.sh 脚本中:

#!/bin/bash
. /etc/profile.d/oracle.sh
sqlplus ...

大概因为您只是安装客户端,您正在连接到远程数据库并且已经在使用合适的连接字符串,所以您不需要export ORACLE_SID=...


不是很相关,但从 XE 客户端安装程序中提取文件似乎有点奇怪;我会考虑改用更易于安装的Oracle Instant Client。这似乎正是它所设计的那种分发场景。

【讨论】:

  • 感谢您的解释 :) 。我需要即时客户端不可用的imp 命令。它看起来像一个理性的选择吗?同样关于这样做,实际上我没有安装oracle-xe- rpm 所需的交换空间。这就是为什么我选择使用这个serverfault.com/a/617863/255855 来做cpio 的事情......这看起来又是一个理性的选择吗?
  • @SubhamTripathi - 啊,我明白了。如果数据泵 (impdp) 不是一个选项,并且您真的被遗留工具 (imp) 困住了,那么也许;虽然我可能会使用静默安装而不是手动提取文件。 (除非您可能无法从 rpm 执行此操作)。大概这对您有用,但不确定它是否是受支持的机制。
  • 我想这总是归结为你的基本概念有多好!这就像魅力一样。我说不出话来谢谢你。说真的,过去三天我一直在尝试解决这个问题,每天大约 10 个小时!谢谢。
  • @SubhamTripathi - 您需要从数据库服务器而不是客户端机器运行导入;这对你来说可能不实用(你必须在那里获取转储文件,并且有办法远程运行impdp - 有一个 API,所以你可以通过 SQL*Plus 来完成,但我没有使用它)
  • @SubhamTripathi - 不,在脚本运行之前似乎没有预先配置。它可能会自动为普通用户设置(在 /etc/profile 或类似文件中),但它可能不是为 root 设置的,或者在实例启动时可能没有设置 - 你可能在受限制的 shell 中,或者谁知道呢。将其添加到脚本中是否有问题,以便您知道它已设置为您需要的值?
猜你喜欢
  • 2015-02-27
  • 2015-06-07
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 2012-05-10
相关资源
最近更新 更多