Oracle的指令指定设置DYLD_LIBRARY_PATH。这使我的应用程序依赖于随机用户的配置,并且设置非常麻烦。
如何避免设置任何环境变量?
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/intel_macsoft.html
linux的相关说明:installing Oracle Instantclient on Linux without setting environment variables?
答案 0 :(得分:23)
要在不设置任何环境变量的情况下使用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
解压缩这三个文件。这将为您提供一个目录
instantclient_10_2/
将文件复制到/ 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
如果您使用tnsnames.ora,请将其复制到/ etc,这是oracle运行时搜索的默认全局位置。
sudo cp tnsnames.ora /etc
使用
进行测试/usr/bin/sqlplus scott/tiger@myoracle
答案 1 :(得分:2)
如果您的目标只是在MacBook上运行sqlplus,这可能对您有用。从〜/ .bashrc中删除DYLD_LIBRARY_PATH环境变量,并用别名替换它:
alias sqlplus="DYLD_LIBRARY_PATH=/Applications/instantclient_11_2 sqlplus"
答案 2 :(得分:0)
经过大量研究后,我找到了一个可持续的解决方案,包括编辑Apache的launchd
配置.plist
文件,以指定所需的DYLD_LIBRARY_PATH
,ORACLE_HOME
和{{ 1}}环境变量。
您可以在此处查看完整答案:https://stackoverflow.com/a/20670810/1914455