在不设置环境变量的情况下在Mac OS/X上安装Oracle Instantclient?

Mar*_*son 9 oracle macos install instantclient

Oracle的指令指定设置DYLD_LIBRARY_PATH.这使我的应用程序依赖于随机用户的配置,并且设置起来非常麻烦.

如何避免设置任何环境变量?

http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/intel_macsoft.html

linux的相关说明:在Linux上安装Oracle Instantclient而不设置环境变量?

Mar*_*son 23

Oracle的instantclient安装说明指定用户设置DYLD_LIBRARY_PATH.管理多个用户非常麻烦.

要在不设置任何环境变量的情况下使用instantclient:

从oracle.com下载instantclient发行版.对于非Java软件开发,您将需要(假设Oracle 10.2):

instantclient-basic-macosx-10.2.0.4.0.zip
instantclient-sdk-macosx-10.2.0.4.0.zip
instantclient-sqlplus-macosx-10.2.0.4.0.zip
Run Code Online (Sandbox Code Playgroud)

解压缩这三个文件.这将为您提供一个目录

instantclient_10_2/
Run Code Online (Sandbox Code Playgroud)

将文件复制到/ usr,这是动态加载程序搜索的默认位置之一.

sudo cp instantclient_10_2/sdk/include/*.h /usr/include
sudo cp instantclient_10_2/sqlplus         /usr/bin
sudo cp instantclient_10_2/*.dylib         /usr/lib
Run Code Online (Sandbox Code Playgroud)

如果使用tnsnames.ora,请将其复制到/ etc,这是oracle运行时搜索的默认全局位置.

sudo cp tnsnames.ora /etc
Run Code Online (Sandbox Code Playgroud)

测试用

/usr/bin/sqlplus scott/tiger@myoracle
Run Code Online (Sandbox Code Playgroud)

  • 复制*.dylib是不够的.您还必须复制*.dylib.10.1 (5认同)
  • 不要将至少/PATH-TO-INSTANTCLIENT/sdk/include/ldap.h复制到/ usr/include,该操作将破坏原始的ldap.h(OpenLDAP)文件. (2认同)