dpkg não pode encontrar o ldconfig / start-stop-daemon na variável PATH

38

Eu estava tentando instalar o utilitário bsd-mailx no qual o pacote foi instalado, mas estou pensando no erro.

Este é o erro que recebo:

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)
    
por user87142 08.10.2014 / 13:26

3 respostas

54

Em primeiro lugar, as linhas em que você está realmente interessado são:

dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.

Esses erros foram relatados várias vezes pelos usuários do Debian e do Ubuntu (você pode realmente usar o Google para obter mais informações). Parece que a variável PATH não está configurada corretamente quando o usuário tenta executar um comando através de sudo , que é provavelmente o que você está tentando fazer.

Solução 1: defina o caminho seguro padrão de sudo

Abra /etc/sudoers executando visudo no seu terminal e verifique se o arquivo inclui a seguinte linha:

Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Mais informações sobre esse problema podem ser encontradas aqui (Problemas e dicas > PATH não definidos).

Solução 2: use a conta root diretamente

Não use sudo , apenas mude para root para executar seus comandos. Execute um dos seguintes comandos para fazer isso:

$ sudo -i
$ su 

Uma vez que você está logado como root, apenas execute seus comandos apt-get novamente:

# apt-get ...

Você pode ter que definir PATH da raiz primeiro. Edite /root/.bashrc (com privilégios de root, é claro) e adicione a seguinte linha:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Solução 3: tente passar a variável PATH para sudo no tempo de execução.

Basta prefixar a chamada sudo com a redefinição da variável PATH :

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sudo apt-get ...
    
por 08.10.2014 / 13:37
1

de alguma forma eu tive o mesmo problema.

Por favor, leia sua mensagem de erro com cuidado e você encontrará a solução. Há uma nota que diz:

Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.

Em seguida, verifiquei meu caminho e, de alguma forma, perdi o / sbin em meu caminho.

echo $PATH

então eu adicionei e o problema desapareceu. :)

export PATH="$PATH:/sbin"

Tcharam!

    
por 15.08.2018 / 16:58
0

Eu tive esse problema hoje e resolvi isso comentando a linha (usando #)

Defaults    exempt_group=sudo

do meu arquivo / etc / sudoers usando

# visudo

como root

Essa alteração fará com que o sudo use a variável padrão secure_path definida no mesmo arquivo.

    
por 10.05.2017 / 17:08