LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1620|回复: 9

用了chmod后程序不能运行

[复制链接]
发表于 2005-11-28 13:28:21 | 显示全部楼层 |阅读模式
我的程序名:comm (可执行文件,本身是非root用户)
调用
chown root:root comm
chmod 6755 comm
再用普通用户登录运行comm会提示
ld.so.1:./proc:致命的:libclntsh.so.8.0:打开失败:无此文件或目录。
求助了,谢谢
发表于 2005-11-29 12:33:09 | 显示全部楼层
好像是说缺少libclntsh.so.8.0这个文件
回复 支持 反对

使用道具 举报

发表于 2005-11-29 18:07:32 | 显示全部楼层
这不是权限的问题,而是缺少了libclntsh.so.8.0这个文件,你必须找到它是属于哪个包,然后安装这个包即可。你可以用ldd命令看看它是否可以找到,如果还不能,你可能需要修改LD_LIBARRY_PATH
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-29 20:40:52 | 显示全部楼层
谢谢,我用ldd看确实说找不到,但是如果用root登录到这个路径下,就可以找到.
我把这个普通用户的.profile和root的.profile设置成一致的也不行.
这个文件在export/home/oracle/lib下有,而且用普通用户可以打开这个文件
不知道为什么用ldd察看是找不到,而且运行不了,但是用root用户登录是正常的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-29 20:59:15 | 显示全部楼层
root用户下:
bash-2.03# ls -l comm
-rwsr-sr-x   1 root     root     22634496 11月 29 17:50 comm
bash-2.03# ldd comm
        libclntsh.so.8.0 =>      /export/home/oracle/lib/libclntsh.so.8.0
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libthread.so.1 =>        /usr/lib/libthread.so.1
        libpthread.so.1 =>       /usr/lib/libpthread.so.1
        librt.so.1 =>    /usr/lib/librt.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libm.so.1 =>     /usr/lib/libm.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libwtc8.so =>    /export/home/oracle/lib/libwtc8.so
        libgen.so.1 =>   /usr/lib/libgen.so.1
        libsched.so.1 =>         /usr/lib/libsched.so.1
        libaio.so.1 =>   /usr/lib/libaio.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        ......        
普通用户下:
bash-2.03# ls -l comm
-rwsr-sr-x   1 root     root     22634496 11月 29 17:50 comm
bash-2.03# ldd comm
        libclntsh.so.8.0 =>      (文件没有发现)
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libthread.so.1 =>        /usr/lib/libthread.so.1
        libpthread.so.1 =>       /usr/lib/libpthread.so.1
        librt.so.1 =>    /usr/lib/librt.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libm.so.1 =>     /usr/lib/libm.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libwtc8.so =>    /export/home/oracle/lib/libwtc8.so
        libgen.so.1 =>   /usr/lib/libgen.so.1
        libsched.so.1 =>         /usr/lib/libsched.so.1
        libaio.so.1 =>   /usr/lib/libaio.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        ......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-29 23:00:53 | 显示全部楼层
自己顶一下
回复 支持 反对

使用道具 举报

发表于 2005-11-30 14:05:36 | 显示全部楼层
如果以root身份可以运行,则说明这个软件的依赖已经满足,你不再需要安装任何的其他的包。但是看你的帖子中“libclntsh.so.8.0 => (文件没有发现)“和“libwtc8.so => /export/home/oracle/lib/libwtc8.so“这两行,说明你的路径中已经包含了/export/home/oracle/lib/,而且从你的root用户的结果看 /export/home/oracle/lib/libclntsh.so.8.0也确实存在。这就不理解了!你看看 /export/home/oracle/lib/libclntsh.so.8.0是不是一个符号链接?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-1 22:13:38 | 显示全部楼层
看过了,正常的有9兆多,我还把它考到我的可执行程序目录里了,但是仍然找不到
回复 支持 反对

使用道具 举报

发表于 2005-12-2 09:12:45 | 显示全部楼层
setenv LD_LIBRARY_PATH /export/home/oracle/lib
然后再ldd试试
回复 支持 反对

使用道具 举报

发表于 2005-12-3 11:31:59 | 显示全部楼层
这个应该不是 LD_LIBRARY_PATH得问题,因为它已经可以找到libwtc8.so => /export/home/oracle/lib/libwtc8.so这个了!感觉很奇怪!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表