dpkg 在 PATH 变量中找不到 ldconfig/start-stop-daemon

use*_*142 56 ubuntu dpkg apt mailx

我试图安装已安装bsd-mailx软件包的实用程序,但是我想知道错误。

这是我得到的错误:

Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
Run Code Online (Sandbox Code Playgroud)

Joh*_*ith 68

首先,你真正感兴趣的台词是:

dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
Run Code Online (Sandbox Code Playgroud)

Debian 和 Ubuntu 用户已多次报告这些错误(您实际上可以在 Google 上搜索以获取更多信息)。PATH当用户尝试通过 执行命令时,变量似乎未正确设置sudo,这可能是您尝试执行的操作。

方案一:设置sudo默认安全路径

/etc/sudoers通过visudo在终端中运行来打开,并确保文件包含以下行:

Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Run Code Online (Sandbox Code Playgroud)

可以在此处找到有关此问题的更多信息(问题和提示 > PATH 未设置)。

方案二:直接使用root账号

不要使用sudo,只需切换到root以运行您的命令。运行以下命令之一来执行此操作:

$ sudo -i
$ su 
Run Code Online (Sandbox Code Playgroud)

以 root 身份登录后,只需apt-get再次运行您的命令:

# apt-get ...
Run Code Online (Sandbox Code Playgroud)

不过,您可能必须先设置 root PATH。编辑/root/.bashrc(当然具有 root 权限),并添加以下行:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)

解决方案3:尝试在执行时将PATH变量传递给sudo

只需在sudo调用前加上PATH变量的重新定义即可:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sudo apt-get ...
Run Code Online (Sandbox Code Playgroud)


小智 8

不知何故,我遇到了同样的问题。

请仔细阅读您的错误消息,您将找到解决方案。有一个注释说:

注意:root 的 PATH 通常应该包含 /usr/local/sbin、/usr/sbin 和 /sbin。

然后我检查了我的路径,不知何故我错过了路径中的 /sbin 。

回声 $PATH

然后我加了,问题就解决了。:)

导出 PATH="$PATH:/sbin"

查拉姆!


Clé*_*ent 7

问题中缺乏描述使得很难确定这种情况下的确切问题,但我最近遇到了同样的问题:

user@debian:su
Password: 
root@debian:/home/user/Downloads# dpkg -i [Some package]
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
Run Code Online (Sandbox Code Playgroud)

解决方案是使用su -而不是su(这通常更好,如该问题的答案中详述):

user@debian:su -
Password: 
root@debian:~# cd /home/user/Downloads/
root@debian:/home/user/Downloads# dpkg -i [Some package]
Run Code Online (Sandbox Code Playgroud)