Installation dyld:未加载库-sqlplus安装

Installation dyld:未加载库-sqlplus安装,installation,sqlplus,oracleclient,Installation,Sqlplus,Oracleclient,我想在我的Mac上安装sqlplus。首先,我从这个链接下载了两个文件 这两个文件: instantclient-basic-macos.x64-18.1.0.0.0.zip instantclient-sqlplus-macos.x64-18.1.0.0.0.zip 然后,我将这些文件从我的终端移动到桌面上的.zip 我写了以下命令: unzip /Users/nietmochi/Desktop/instantclient-basic-macos.x64-18.1.0.0.0.zip 及 然

我想在我的Mac上安装sqlplus。首先,我从这个链接下载了两个文件 这两个文件:

instantclient-basic-macos.x64-18.1.0.0.0.zip

instantclient-sqlplus-macos.x64-18.1.0.0.0.zip

然后,我将这些文件从我的终端移动到桌面上的.zip 我写了以下命令:

unzip /Users/nietmochi/Desktop/instantclient-basic-macos.x64-18.1.0.0.0.zip

然后:

export PATH=/Users/nietmochi/Desktop/instantclient_18_1:$PATH
以及:

现在,当我尝试使用命令sqlplus启动sqlplus时,我收到以下消息:

dyld: Library not loaded: @rpath/libclntsh.dylib.18.1
  Referenced from: /Users/nietmochi/Desktop/instantclient_18_1/sqlplus
  Reason: image not found
Abort trap: 6
为什么??如何修复它


非常感谢

错误表明~/Desktop/instantclient_18_1目录仅包含instantclient-sqlplus-macos.x64-18.1.0.0.zip文件的内容。我怀疑你已经在不同的地方尝试过几次了,你最终得到了部分安装和完整安装的混合结果,你碰巧得到了一个部分安装

当您这样做时:

unzip /Users/nietmochi/Desktop/instantclient-basic-macos.x64-18.1.0.0.0.zip
unzip /Users/nietmochi/Desktop/instantclient-sqlplus-macos.x64-18.1.0.0.0.zip
然后,两个zip归档文件应扩展到同一个instantclient_18_1目录中,该目录将位于当前工作目录中。如果您在运行之前没有更改为~/Desktop,那么它可能位于任何位置

我建议你重新开始。从您的主目录、~/Desktop、~/Downloads等任何您可以找到的地方,查找并删除名为instantclient_18_1的任何目录;主要是为了避免混淆

然后,由于您的zip文件当前位于桌面上,为了简单起见,请执行以下操作:

cd ~/Desktop
unzip instantclient-basic-macos.x64-18.1.0.0.0.zip
ls instantclient_18_1 | wc -l
unzip instantclient-sqlplus-macos.x64-18.1.0.0.0.zip
ls instantclient_18_1 | wc -l
第一个ls应该为您提供18个文件的计数。第二个应该为您提供23个文件的计数

完成此操作后,sqlplus应该可以使用您已经修改的路径工作


你可以把instantclient_18_1目录放在任何你想要的地方,只要你的路径指向它,您可以将设置路径添加到~/.bash_配置文件中,这样以后就不必手动执行此操作。

错误表明~/Desktop/instantclient_18_1目录中只有instantclient-sqlplus-macos.x64-18.1.0.0.zip文件的内容。我怀疑你已经在不同的地方尝试过几次了,你最终得到了部分安装和完整安装的混合结果,你碰巧得到了一个部分安装

当您这样做时:

unzip /Users/nietmochi/Desktop/instantclient-basic-macos.x64-18.1.0.0.0.zip
unzip /Users/nietmochi/Desktop/instantclient-sqlplus-macos.x64-18.1.0.0.0.zip
然后,两个zip归档文件应扩展到同一个instantclient_18_1目录中,该目录将位于当前工作目录中。如果您在运行之前没有更改为~/Desktop,那么它可能位于任何位置

我建议你重新开始。从您的主目录、~/Desktop、~/Downloads等任何您可以找到的地方,查找并删除名为instantclient_18_1的任何目录;主要是为了避免混淆

然后,由于您的zip文件当前位于桌面上,为了简单起见,请执行以下操作:

cd ~/Desktop
unzip instantclient-basic-macos.x64-18.1.0.0.0.zip
ls instantclient_18_1 | wc -l
unzip instantclient-sqlplus-macos.x64-18.1.0.0.0.zip
ls instantclient_18_1 | wc -l
第一个ls应该为您提供18个文件的计数。第二个应该为您提供23个文件的计数

完成此操作后,sqlplus应该可以使用您已经修改的路径工作


您可以将instantclient_18_1目录放在任何您想要的地方,只要您的路径指向它,并且您可以将设置路径添加到~/.bash_配置文件中,这样您以后就不必手动执行此操作。

安装已更改为19c,19c引入了签名DMG包。 见:

从下载所需的DMG包

在Finder中,双击所有需要的Instant Client.dmg包以装载它们

打开终端窗口并将目录更改为其中一个包,例如:

$ cd /Volumes/instantclient-basic-macos.x64-19.8.0.0.0dbru
运行install_ic.sh脚本:

$ ./install_ic.sh
这会将当前装载的所有Instant Client.dmg包的内容复制到$HOME/Downloads/instantclient_19_8

如果安装了多个DMG软件包,则只需运行install_ic.sh一次

在Finder中,弹出已装入的即时客户端包


如有疑问,请按照您下载Instant Client的页面上的说明进行操作。

安装已更改为19c,19c引入了签名DMG软件包。 见:

从下载所需的DMG包

在Finder中,双击所有需要的Instant Client.dmg包以装载它们

打开终端窗口并将目录更改为其中一个包,例如:

$ cd /Volumes/instantclient-basic-macos.x64-19.8.0.0.0dbru
运行install_ic.sh脚本:

$ ./install_ic.sh
这会将当前装载的所有Instant Client.dmg包的内容复制到$HOME/Downloads/instantclient_19_8

如果安装了多个DMG软件包,则只需运行install_ic.sh一次

在Finder中,弹出已装入的即时客户端包


如果有疑问,请按照您下载Instant Client的页面上的进行操作。

这不会设置库搜索路径,因此它很脆弱。Instant Client 19c安装已更改,因为DMG软件包已可用。请看,这没有设置库搜索路径,因此它是脆弱的。即时客户端19c安装已更改,因为DMG包可用。请看,您不再需要该步骤,最新版本是使用相对路径正确构建的,因此它不会尝试使用库路径或必须具有固定位置
ns.公平点,但其他工具,例如我们所有基于ODPI-C的驱动程序(如Python cx_Oracle)仍然需要库搜索路径集,因此我将其称为最佳实践。我更新了答案以删除一些过时的步骤。您不再需要该步骤,最近的版本是使用相对路径正确构建的,因此它不会尝试使用库路径或必须有固定的位置。公平点,但其他工具,例如我们所有基于ODPI-C的驱动程序,如Python cx_Oracle,仍然需要库搜索路径集,我更新了答案,删除了一些过时的步骤。