OCIError对“需要”; 权限问题?(OCIError on 'require

2019-11-03 21:03发布

我最近刚开始学习/使用Ruby的工作。 我已经有了,只是连接到我们的Oracle 10g数据库,运行一个选择,而“放”,结果屏幕一个超级简单的测试脚本。 这是Solaris 10服务器上。 如果我运行该脚本作为“应用程序”用户(运行我们的自动脚本系统用户),脚本运行的罚款。 如果我运行它自己,它抛出一个错误:

oci8lib.c:98:in oci8lib.so: OCI Library Initialization Error (OCIError)
    from /usr/local/lib/ruby/site_ruby/1.8/oci8.rb:25
    from ./dbTest.rb:3:in `require'
    from ./dbTest.rb:3

我ENV瓦尔匹配“应用”用户。 我假设这是对一些文件/目录或其他权限问题,但我不知道从哪里开始寻找。 在oci8.rb文件第25行是一个“要求‘oci8lib_18’”指令。 我已阅读并在oci8lib_18.so文件,并导致它显示目录的执行权限,但我不知道哪个迪尔斯需要访问。

有没有人有什么样的文件/迪尔斯我应该检查的权限有什么建议? 或者有什么其他想法的问题可能是什么?

UPDATE我已经通过电子邮件发送与支持OCI8的家伙,原来那几个甲骨文目录具有阻止我的登录访问所需的信息的权限。 一个简单的测试是要尝试运行的sqlplus,这也失败了。

戴夫

Answer 1:

先验我不知道。 做其他的红宝石应用程序运行使用OCI? 通常库和辅助库都安装RWX-R-XR-X。 你永远不应该看到上未正确安装库的权限错误。 所以我让你缺少您的环境中的东西胡乱猜测,很可能像LD_LIBRARY_PATH条目

LDD打开共享库非常的运行时图像做了同样的方式。

看看,如果这个工程第一:

cd /path/to/library   # where oci8lib.so lives.  
ldd oci8lib.so

这应该显示所有的外部链接库,没有任何错误。 如果LDD工作,请检查您LD_LIBRARY_PATH,以确保你现在在声明那里的路径。 如果它不工作,你有某种形式的安装问题,如缺少库,或非标准的路径库。

对你的成绩重新回到了我们。



Answer 2:

我一直在通过电子邮件发送与支持OCI8的家伙,原来那几个甲骨文目录具有阻止我的登录访问所需的信息的权限。 一个简单的测试是要尝试运行的sqlplus,这也失败了。



文章来源: OCIError on 'require'; permissions issue?