我已经安装了一个程序 Player,现在正在尝试运行该player
命令。播放器需要一个 .cfg 文件作为输入,例如
player create.cfg
我注意到我能够以普通用户的身份运行上述命令,但是当我以 root 身份运行它时,
sudo player create.cfg
我收到以下错误:
error while loading shared libraries: libplayerdrivers.so.3.0: cannot open shared object file: No such file or directory
我的问题是,为什么该命令在以普通用户身份运行时会起作用,而在以 root 用户身份运行时却不行?如果反过来,我会理解的。是什么赋予了?
更多细节
我知道错误通常意味着 LD_LIBRARY_PATH 设置不正确。有问题的共享对象在/usr/local/lib
,所以我把命令
EXPORT LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
在我的 .bashrc 文件中并获取它。但是运行player
命令sudo
仍然无法找到它。
做ls -l /usr/local/lib | grep libplayerdrivers
给出以下输出:
lrwxrwxrwx 1 root root 23 Jun 27 16:34 libplayerdrivers.so -> libplayerdrivers.so.3.0
lrwxrwxrwx 1 root root 25 Jun 27 16:28 libplayerdrivers.so.3.0 -> libplayerdrivers.so.3.0.2
-rw-r--r-- 1 root root 3042066 Jun 27 16:28 libplayerdrivers.so.3.0.2