![安装 Oracle Instant Client](https://linux22.com/image/1000438/%E5%AE%89%E8%A3%85%20Oracle%20Instant%20Client.png)
我正在尝试让 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。完成所有操作后,希望您将不会再遇到任何错误。