安装 Oracle Instant Client

安装 Oracle Instant Client

我正在尝试让 Oracle SQL Developer 在 16.04 中运行。我按照 PhatHV 的回答问题,桌面应用程序打开正常,显示正确,但当我尝试连接到数据库时(我知道这应该可以工作,因为我已经连接到 Windows 中的同一个数据库),会弹出一个错误窗口,提示

An error was encountered performing the requested operation:

no ocijdbc12 in java.library.path

Vendor code 0

有人知道是什么原因导致了这个错误以及如何修复它?

答案1

对我来说,仅当我将 LD_LIBRARY_PATH 环境变量设置为 Instant Client 目录时它才有效,在 /etc/ld.so.conf.d/oracle.conf 中执行此操作但运行时sudo ldconfig不起作用。

答案2

好的,我现在已经设法(在一些帮助下)在两台不同的计算机上修复了这个问题,但时间太长了,我记不清我们修复它时做了什么。我至少会把我记得的都包括进去,以后可能会修改这个答案。我并不了解幕后的一切,所以如果有不必要的步骤,我深表歉意。然而,正如我在最初的问题中提到的,我遵循了 PhatHV 给出的另一个答案,我不会在这里重复那里的步骤。假设你在来这里之前已经按照他的教程做了。

安装 Oracle Instant Client

对于 SQL Developer 版本 4.2.0,我需要获取 Instant Client 版本 12.2.0.1.0。您可以找到下载这里. 选择与你的架构对应的“Instant Client for Linux”(我的机器是64位的,所以打开了x86-64选项)。下载以下5个文件(在合适的位置替换版本号和架构):

  • oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm

如果你还没有,你需要安装一个名为的工具alien

sudo apt-get install alien

导航到您的下载目录(或您保存文件的任何位置),然后sudo alien -i对每个文件运行以进行安装。我们使用alien因为它首先将它们转换为,.deb然后再安装它们。请注意,alien它不会立即产生太多输出,因此看起来可能没有做任何事情,但我保证它确实在做。

sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm

编辑配置文件和环境变量

您需要以 root 用户身份来执行所有这些命令。运行sudo su以 root 身份登录。

编辑/etc/profile.d/oracle.sh以包含以下内容:

export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export TNS_ADMIN=/usr/lib/oracle/ora
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

注意ORACLE_HOME变量中的版本号。同样,我的是12.2,但你的可能是其他的。设置 也很常见TNS_ADMIN=$ORACLE_HOME/ora,但我选择不这样做,这样我的.ora文件就不会位于版本相关的目录中(例如12.2)。

编辑/etc/ld.so.conf.d/oracle.conf以包含

/usr/lib/oracle/12.2/client64/lib/

再次记下版本号。

最后,在/etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/default-java/"
CLASSPATH=/usr/lib/jvm/default-java/lib:/usr/lib/jvm/default-java/include:/usr/lib/oracle/12.2/client64/lib

完成所有这些文件的编辑后,运行

ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment

点击<Ctrl> + D或输入exit即可恢复为普通用户。

添加为第三方驱动程序

我不知道这一步是否绝对必要,但它在我的电脑上是有效的。如果你打开 SQL Developer,你可以导航到Tools -> Preferences -> Database -> Third Party JDBC Drivers并单击Add Entry。打开/usr/lib/oracle/12.2/client64并单击lib。它会突出显示它,然后你可以单击select将其添加到列表中。

完成此步骤后,您需要关闭并重新打开 SQL Developer。完成所有操作后,希望您将不会再遇到任何错误。

相关内容