Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 注意:根';路径通常应该包含/usr/local/sbin、/usr/sbin和/sbin_Linux_Ubuntu - Fatal编程技术网

Linux 注意:根';路径通常应该包含/usr/local/sbin、/usr/sbin和/sbin

Linux 注意:根';路径通常应该包含/usr/local/sbin、/usr/sbin和/sbin,linux,ubuntu,Linux,Ubuntu,在shell中运行命令时(例如sudo apt get install aptitude),这是输出: dpkg: warning: 'ldconfig' not found in PATH or not executable. dpkg: warning: 'start-stop-daemon' not found in PATH or not executable. dpkg: 2 expected program(s) not found in PATH or not executable

在shell中运行命令时(例如sudo apt get install aptitude),这是输出:

dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: 2 expected program(s) not found in PATH or not executable.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
以下是我设置的变量:

export PATH=$PATH:/usr/local/sbin:/usr/local/bin in bashrc
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" in /etc/environment
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" in /etc/sudoerds
echo $path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/node/node:/usr/local/sbin:/usr/local/bin
sudo echo $path
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/node/node:/usr/local/sbin:/usr/local/bin

尝试
sudosu-
并直接从根目录运行相同的命令,查看其是否通过

如果/root/.bashrc文件中的PATH变量不起作用,请将其设置为更安全的一方

/root/.bashrc

导出路径=/sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/sbin:/usr/bin


这只是环境变量的问题,除非那些二进制文件实际上丢失了,这是不可能的,您永远不知道其他环境:)

谢谢,这对我很有用

nano /root/.bashrc
转到最后一个并输入:

export PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin
更新bashrc后,请执行以下操作:

. /root/.bashrc

source/root/.bashrc

我在这里偶然发现了一个类似的案例。所以我将添加这个答案,以防有人受益

在Debian从8升级到9.9之后,我收到了这个错误。我使用
sudo apt get install…
安装docker时出现以下错误

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)
我通过编辑文件
/etc/profile
,从

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi

更改与
root
旁边的其他用户的路径变量相对应的
else
部分,添加缺少的路径


(西班牙语)

我投票结束这个问题,因为它不是一个编程问题。我建议在这里删除它并重新发布。另外,请更新问题,以明确您的问题。我在你的帖子里没有看到一个真正的问题。(
sudo sh-c'echo$PATH'
将在运行
sudo
下的命令时显示root的路径),以防由于
无人值守升级
引发此类错误而跳过此问题。。。这可能是因为crontab设置了默认路径。cron作业的解决方案如下:
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
fi