【问题标题】:How to install Oracle Instant Client on a Mac?如何在 Mac 上安装 Oracle Instant Client?
【发布时间】:2016-10-09 06:02:46
【问题描述】:

如何在 Mac (OS X 10.11.5) 上安装 Oracle Instant Client 版本 12.1.0.2(64 位)

我已下载 12.1.0.2(64 位)版本并解压文件。

我现在在 /downloads/instantclient 下有以下文件:

libclntsh.dylib.12.1
libclntshcore.dylib.12.1
libnnz12.dylib
libocci.dylib.12.1
libociei.dylib
libocijdbc12.dylib
libons.dylib
liboramysql12.dylib
ojdbc6.jar
ojdbc7.jar
uidrvci
xstreams.jar
adrci
BASIC_README
genezi

我完全不知道如何从它转到 Instant Client 的工作版本,以便我可以从 CLI 连接到数据库。 Oracles 网站上的说明似乎过于复杂。

我找到了一些详细介绍安装方法的博客,但它们似乎都来自以前版本的 Instant Client。无奈之下,我下载了以前版本的 Instant Client,但似乎仍然缺少教程中提到的文件。

有人知道如何在我的 Mac 上安装 Oracle Instant Client 吗?

【问题讨论】:

    标签: oracle macos oracle12c instantclient


    【解决方案1】:

    HomeBrew 救了我。我不知道环境路径。

    此答案(见底部)来自每个引用的博客:

    (2020 年 10 月 6 日更新:不再需要第 1 步,只需运行 brew 命令!)

    1. 从 http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html 下载以下两个文件。

    这是必要的,因为 Oracle 许可证。

    instantclient-basic-macos.x64–11.2.0.4.0.zipinstantclient-sqlplus-macos.x64–11.2.0.4.0.zip

    将文件放入~/Library/Caches/Homebrew


    PS:

    在最新版本的 HomeBrew 中,将上述位置 ~/Library/Caches/HomeBrew 替换为 ~/Library/Caches/HomeBrew/downloads

    并且还使用 HomeBrew 建议的名称重命名下载的文件。

    感谢@manuka_m


    2。接下来运行以下命令

    $ brew tap InstantClientTap/instantclient

    $ brew install instantclient-basic

    $ brew install instantclient-sqlplus

    源自Joost van Wollingen's doc

    【讨论】:

    • 在终端 @SunishthaSingh 。 Homebrew 与 Mac 相关
    • 我的 Mac 中没有 ~/Library/Caches/Homebrew。它在哪里?
    • 请注意,在最新版本的 HomeBrew 中,将上述位置 ~/Library/Caches/HomeBrew 替换为 ~/Library/Caches/HomeBrew/downloads。并使用 HomeBrew 建议的名称重命名下载的文件。
    • “使用 HomeBrew 建议的名称”——这是什么意思?我在哪里可以看到这样的建议?
    • Janusz's answer。 Joost 在 2020 年更新了 the instructions - 不再需要手动下载步骤。您只需要brew tapbrew install 步骤。
    【解决方案2】:

    使用 Homebrew (https://brew.sh/) 就这么简单:

    $ brew tap InstantClientTap/instantclient
    $ brew install instantclient-basic
    $ brew install instantclient-sqlplus
    

    在我的情况下不需要额外的库。根据您的外壳 - 可能需要 rehash

    【讨论】:

    • 其实我发现这个不完整,需要设置ORACLE_HOME。
    • 对我来说同样的问题 - 我不知道要设置什么。
    【解决方案3】:

    在 SQLdeveloper 中,您会发现 SQLplus,它可以像在 Windows 上一样开箱即用。

    (应该这样开始)

    如果您将应用程序移到 Application 下并设法启动 SQLdeveloper-client,则无法在此处找到它,称为 sql:

    /Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin/sql
    

    直接登录,运行sql退出:

    sql username/password@ADDRESS_TO_DB:1521/SID @/path/to/your/pls_file_containing_sql/test.pls
    

    记得加上'exit;'在您的 pls 文件的末尾。

    【讨论】:

      【解决方案4】:

      multiple files available for download。从您列出的文件中,您只下载并解压缩了“基本”包。

      要运行 CLI(我假设您的意思是 SQL*Plus),您还需要该包 - 列表中的第四个,标题为“Instant Client Package - SQL*Plus: Additional libraries and executable for running SQL*Plus使用即时客户端”。

      这些包的排列方式是,如果您从同一个地方解压缩所有需要的包,它们都会将它们的文件放在同一个目录中。不幸的是,如果您使用 Safari 并将其设置为打开某些下载的文件,这将无法正常工作;每个 zip 文件都扩展为一个单独的文件夹,并具有递增的名称。然后它会删除 zip 文件。

      您可以禁用自动解压缩并手动执行,或者将文件从各个文件夹复制到一个公共文件夹中。

      您可能还需要为主客户端库创建符号链接;从该文件夹中(在终端中)你会这样做:

      ln -s libclntsh.dylib.12.1 libclntsh.dylib
      

      您可以将该组合文件夹放在您喜欢的任何位置。然后,您需要将该文件夹的完整路径添加到您的 PATH 和环境变量中 - 您可以将其添加到您的 .bash_profile 中,这样您就不需要手动操作了。

      完成后,您可以在任何地方执行sqlplus

      总结一下:

      1. 如果您使用的是 Safari,请禁用自动打开 zip 文件;从 Safari->首选项->常规取消勾选“下载后打开“安全”文件”复选框。

      2. Downloadinstantclient-basic-macos.x64-12.1.0.2.0.zip 和 instantclient-sqlplus-macos.x64-12.1.0.2.0.zip

      3. 在终端中转到您的下载目录。

      4. 解压两个文件:

        MacBook:Downloads alex$ unzip instantclient-basic-macos.x64-12.1.0.2.0.zip
        Archive:  instantclient-basic-macos.x64-12.1.0.2.0.zip
          inflating: instantclient_12_1/BASIC_README  
          inflating: instantclient_12_1/adrci  
          inflating: instantclient_12_1/genezi  
          inflating: instantclient_12_1/libclntsh.dylib.12.1  
          inflating: instantclient_12_1/libclntshcore.dylib.12.1  
          inflating: instantclient_12_1/libnnz12.dylib  
          inflating: instantclient_12_1/libocci.dylib.12.1  
          inflating: instantclient_12_1/libociei.dylib  
          inflating: instantclient_12_1/libocijdbc12.dylib  
          inflating: instantclient_12_1/libons.dylib  
          inflating: instantclient_12_1/liboramysql12.dylib  
          inflating: instantclient_12_1/ojdbc6.jar  
          inflating: instantclient_12_1/ojdbc7.jar  
          inflating: instantclient_12_1/uidrvci  
          inflating: instantclient_12_1/xstreams.jar  
        MacBook:Downloads alex$ unzip instantclient-sqlplus-macos.x64-12.1.0.2.0.zip
        Archive:  instantclient-sqlplus-macos.x64-12.1.0.2.0.zip
          inflating: instantclient_12_1/SQLPLUS_README  
          inflating: instantclient_12_1/glogin.sql  
          inflating: instantclient_12_1/libsqlplus.dylib  
          inflating: instantclient_12_1/libsqlplusic.dylib  
          inflating: instantclient_12_1/sqlplus  
        
      5. 可选择重命名和/或将instantclient_12_1 目录移动到更永久的位置。

      6. 将该位置添加到您当前会话中的路径,以及您的 shell 配置文件/资源​​文件中,以使其在每次登录时生效:

         export PATH=$HOME/Downloads/instantclient_12_1:$PATH
        
      7. 享受吧。

        MacBook:Downloads alex$ export PATH=$HOME/Downloads/instantclient_12_1:$PATH
        MacBook:Downloads alex$ which sqlplus
        /Users/alex/Downloads/instantclient_12_1/sqlplus
        MacBook:Downloads alex$ sqlplus
        
        SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 9 16:29:49 2016
        
        Copyright (c) 1982, 2016, Oracle.  All rights reserved.
        
        Enter user-name: 
        

      El Capitan 添加了系统完整性保护 (SIP),其副作用之一是无法导出 DYLD_LIBRARY_PATH。例如,这可能会影响从 shell 脚本运行 SQL*Plus。 11g 即时客户端有workarounds。自从我上次这样做以来,下载页面底部的安装说明发生了变化,现在它说将库文件硬链接到用户的 ~/lib 目录以避免该问题。幸运的是,对于 12c 客户端,您似乎不需要担心这一点 - 他们已经修复了它的构建方式。

      【讨论】:

      • 会试一试并报告,感谢您提供的信息。
      • 所以我想澄清两件事。 1. 我可以将所有即时客户端文件(包括 sqlplus)放到一个目录中吗?和 2. 我只是进入我的 bash 配置文件(在本例中为 .zshrc)并将 Instantclient 目录路径添加到我的 $PATH ?我只是想澄清一下,因为它仍然不起作用。
      • 对于 (1) 是的,它们必须解压缩到同一目录中,才能使库依赖项起作用。对于 (2) 您是否正在导出更新的 PATH?你能从这些文件所在的目录运行sqlplus,但不能在其他任何地方运行吗?
      • 无论我在哪个目录中,如果我在终端中输入 sqlplus,它会显示“找不到命令”,我的 .zshrc 中有 export PATH 以及到 Instantclient 目录的路径,即 /用户/bdonna/Downloads/instantclient_12_1
      • 您是否也在当前的 shell 中完成了导出,或者重新获取了 .zshrc 资源,或者启动了新的 shell?将其添加到文件中使其在下次登录时自动进行,猜猜这并不明显......如果你在目录中你可以做./sqlplus,我忘了它默认排除当前目录。
      猜你喜欢
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多