我已经安装了一个程序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
答案 0 :(得分:0)
sudo会覆盖LD_LIBRARY_PATH,因为它存在安全风险。