首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-bash: /usr/lib/oracle/19.10/client64 64/bin/sqlplus:没有这样的文件或目录

-bash: /usr/lib/oracle/19.10/client64 64/bin/sqlplus:没有这样的文件或目录
EN

Unix & Linux用户
提问于 2023-03-21 23:20:55
回答 1查看 100关注 0票数 1

我试图使用aarch64在M2 MacBook Air上运行OracleLinux9( application 9),以便开发连接到OracleDatabase11g所需的python应用程序。

由于python应用程序需要安装Oracle实例化客户端,所以我根据:https://docs.oracle.com/en/database/oracle/oracle-database/19/lacli/installing-ic-arm-packages.html#GUID-1F3D38AD-A4DB-461A-9B50-9FC283C5A7CB安装了3个RPM(basic、devel、sqlplus)

代码语言:javascript
复制
[kojima@localhost ~]$ sudo dnf list installed | grep instantclient
oracle-instantclient19.10-basic.aarch64          19.10.0.0.0-1                       @@commandline
oracle-instantclient19.10-devel.aarch64          19.10.0.0.0-1                       @@commandline
oracle-instantclient19.10-sqlplus.aarch64        19.10.0.0.0-1                       @@commandline

SQLplus似乎已成功安装,但bash抱怨如下:

代码语言:javascript
复制
[kojima@localhost ~]$ sqlplus
-bash: /usr/lib/oracle/19.10/client64/bin/sqlplus: No such file or directory

但可执行文件实际上存在。谁能解释一下我错过了什么吗?我该怎么做?

代码语言:javascript
复制
[kojima@localhost ~]$ file /usr/lib/oracle/19.10/client64/bin/sqlplus
/usr/lib/oracle/19.10/client64/bin/sqlplus: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=abac9e40cfe83fd8802fb2226289640658b3b024, not stripped
[kojima@localhost ~]$ uname -a
Linux localhost.localdomain 5.15.0-3.60.5.1.el9uek.aarch64 #2 SMP Wed Oct 19 20:23:09 PDT 2022 aarch64 aarch64 aarch64 GNU/Linux
[kojima@localhost ~]$ cat /etc/oracle-release
Oracle Linux Server release 9.1

编辑

strace sqlplus给出了以下内容:

代码语言:javascript
复制
[kojima@localhost ~]$ strace sqlplus
execve("/usr/lib/oracle/19.10/client64/bin/sqlplus", ["sqlplus"], 0xfffff0bed0a0 /* 32 vars */) = -1 ENOENT (No such file or directory)
strace: exec: No such file or directory
+++ exited with 1 +++

ldd -v /usr/lib/oracle/19.10/client64/bin/sqlplus

代码语言:javascript
复制
[kojima@localhost ~]$ ldd -v /usr/lib/oracle/19.10/client64/bin/sqlplus
        linux-vdso.so.1 (0x0000ffff8e854000)
        libsqlplus.so => /usr/lib/oracle/19.10/client64/lib/libsqlplus.so (0x0000ffff8e744000)
        libclntsh.so.19.1 => /usr/lib/oracle/19.10/client64/lib/libclntsh.so.19.1 (0x0000ffff8ba19000)
        libclntshcore.so.19.1 => /usr/lib/oracle/19.10/client64/lib/libclntshcore.so.19.1 (0x0000ffff8b745000)
        libnnz19.so => /usr/lib/oracle/19.10/client64/lib/libnnz19.so (0x0000ffff8b24a000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000ffff8b229000)
        libm.so.6 => /lib64/libm.so.6 (0x0000ffff8b188000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000ffff8b167000)
        librt.so.1 => /lib64/librt.so.1 (0x0000ffff8b146000)
        libaio.so.1 => /lib64/libaio.so.1 (0x0000ffff8b125000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x0000ffff8b102000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000ffff8b0d1000)
        libc.so.6 => /lib64/libc.so.6 (0x0000ffff8af23000)
        /lib64/ld-linux-aarch64.so.1 => /lib/ld-linux-aarch64.so.1 (0x0000ffff8e817000)

        Version information:
        /usr/lib/oracle/19.10/client64/bin/sqlplus:
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /usr/lib/oracle/19.10/client64/lib/libsqlplus.so:
                libpthread.so.0 (GLIBC_2.17) => /lib64/libpthread.so.0
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /usr/lib/oracle/19.10/client64/lib/libclntsh.so.19.1:
                libresolv.so.2 (GLIBC_2.17) => /lib64/libresolv.so.2
                libdl.so.2 (GLIBC_2.17) => /lib64/libdl.so.2
                libm.so.6 (GLIBC_2.17) => /lib64/libm.so.6
                libpthread.so.0 (GLIBC_2.17) => /lib64/libpthread.so.0
                libaio.so.1 (LIBAIO_0.4) => /lib64/libaio.so.1
                libaio.so.1 (LIBAIO_0.1) => /lib64/libaio.so.1
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /usr/lib/oracle/19.10/client64/lib/libclntshcore.so.19.1:
                librt.so.1 (GLIBC_2.17) => /lib64/librt.so.1
                libgcc_s.so.1 (GCC_3.0) => /lib64/libgcc_s.so.1
                libdl.so.2 (GLIBC_2.17) => /lib64/libdl.so.2
                libm.so.6 (GLIBC_2.17) => /lib64/libm.so.6
                libpthread.so.0 (GLIBC_2.17) => /lib64/libpthread.so.0
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /usr/lib/oracle/19.10/client64/lib/libnnz19.so:
                libdl.so.2 (GLIBC_2.17) => /lib64/libdl.so.2
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /lib64/libdl.so.2:
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /lib64/libm.so.6:
                ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
                libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /lib64/libpthread.so.0:
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /lib64/librt.so.1:
                ld-linux-aarch64.so.1 (GLIBC_PRIVATE) => /lib/ld-linux-aarch64.so.1
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
                libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
        /lib64/libaio.so.1:
                ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /lib64/libresolv.so.2:
                ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1
                libc.so.6 (GLIBC_2.34) => /lib64/libc.so.6
                libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /lib64/libgcc_s.so.1:
                libc.so.6 (GLIBC_2.34) => /lib64/libc.so.6
                libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
        /lib64/libc.so.6:
                ld-linux-aarch64.so.1 (GLIBC_PRIVATE) => /lib/ld-linux-aarch64.so.1
                ld-linux-aarch64.so.1 (GLIBC_2.17) => /lib/ld-linux-aarch64.so.1

环境变量:

代码语言:javascript
复制
# at the bottom of the ~/.bashrc
# ...
export ORACLE_HOME=/usr/lib/oracle/19.10/client64
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ORACLE_HOME/lib"
export DYLD_LIBRARY_PATH="$ORACLE_HOME/lib:$DYLD_LIBRARY_PATH"
export TNS_ADMIN="$ORACLE_HOME/lib/network/admin"
export PATH="$ORACLE_HOME/bin:$PATH"
export NLS_LANG=Japanese_Japan.AL32UTF8
export SQLPATH="$ORACLE_HOME"
export ORACLE_PATH="$ORACLE_HOME"
export ORA_NCHAR_LITERAL_REPLACE=TRUE
代码语言:javascript
复制
[kojima@localhost ~]$ echo $ORACLE_HOME
/usr/lib/oracle/19.10/client64
[kojima@localhost ~]$ echo $PATH
/usr/lib/oracle/19.10/client64/bin:/home/kojima/.local/bin:/home/kojima/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
EN

回答 1

Unix & Linux用户

发布于 2023-03-23 02:35:17

不知道为什么工作,以及如何找到它,但我需要修改所有可执行文件的解释器。

来源:https://askubuntu.com/a/1440839

代码语言:javascript
复制
sudo dnf install oracle-epel-release-el9
sudo dnf install patchelf
sudo patchelf --set-interpreter /lib/ld-linux-aarch64.so.1 \
    /usr/lib/oracle/19.10/client64/bin/*

在执行patchelf之后,sqlplus就像我所期望的那样工作:

代码语言:javascript
复制
[kojima@localhost ~]$ sqlplus

SQL*Plus: Release 19.0.0.0.0 - Production on 木 3月 23 11:27:30 2023
Version 19.10.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

ユーザー名を入力してください: ^C
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/740537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档