Eu estava tentando instalar bsd-mailx
o utilitário, o pacote foi instalado, mas estou pensando sobre o 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)
Responder1
Em primeiro lugar, as linhas que realmente lhe interessam 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 por usuários do Debian e Ubuntu (você pode pesquisá-los no Google para obter mais informações). Parece que a PATH
variável não está definida corretamente quando o usuário tenta executar um comando sudo
, o que provavelmente é o que você está tentando fazer.
Solução 1: definir sudo
o caminho seguro padrão
Abra /etc/sudoers
executando visudo
em seu terminal e certifique-se de que o arquivo inclua 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 este problema podem ser encontradasaqui(Problemas e dicas > PATH não definido).
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
Depois de fazer login como root, basta executar seus apt-get
comandos novamente:
# apt-get ...
Você pode ter que definir o root PATH
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 PATH
variável para sudo
em tempo de execução.
Basta prefixar a sudo
chamada com a redefinição da PATH
variável:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sudo apt-get ...
Responder2
de alguma forma eu tive o mesmo problema.
Leia sua mensagem de erro com atenção e você encontrará a solução. Há uma nota que diz:
Nota: o PATH do root geralmente deve conter /usr/local/sbin, /usr/sbin e /sbin.
Então verifiquei meu caminho e de alguma forma estava faltando o /sbin no meu caminho.
echo $PATH
então adicionei e o problema desapareceu. :)
exportar PATH="$PATH:/sbin"
Tcharam!
Responder3
A falta de descrição na pergunta torna difícil identificar o problema exato nesta situação, mas recentemente enfrentei o mesmo problema:
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
A solução foi usar su -
em vez de su
(o que geralmente é melhor, conforme detalhado emas respostas para esta pergunta):
user@debian:su -
Password:
root@debian:~# cd /home/user/Downloads/
root@debian:/home/user/Downloads# dpkg -i [Some package]
Responder4
Nenhuma das soluções mostradas aqui me ajudou, então vou explicar o que aconteceu comigo e o que fiz para consertar:
Eu estava tentando instalar o Insync no meu sistema Q4OS e não consegui porque o aplicativo requer libc6 >= 2.32 e o Q4OS usa 2.31. Encontrei um deb libc6 de 2,32 e então o pesadelo começou. Todo o meu sistema foi quebrado. apt-get
parou de funcionar e diz que o sistema precisa do libc6 2.31 para funcionar corretamente. Naquela época eu não sabia como fazer o downgrade da versão. Então, após reiniciar, o sistema simplesmente não iniciou e desligou com a mensagem na inicialização:
A start job is running for Hold until boot process finishes up (Xmin Xs/no limit)
Tentei mudar o terminal sem sucesso. Espero que meu Linux esteja rodando no VMWare e eu consiga me conectar na máquina usando o SSH.VM -> SSH -> Connect to SSH...
Depois disso, tentei muitas coisas sem sucesso. Tentei atualizar com:
sudo apt install upgrade
e a mensagem diz que eu tive que correr:
sudo apt --fix-broken install
Mas quando tentei rodar isso, ele disse que muitos pacotes seriam removidos, inclusive q4os-desktop
ele próprio. Bem, aceito as condições e tentei. O que mais eu poderia perder?
Depois disso, a coisa fica muito pior. Não consegui executar nada. Recebi um erro semelhante da pergunta:
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)
Mas o problema não era o PATH em si, mas o ldconfig faz parte do libc6 e foi removido. Não pude fazer nada porque quase tudo depende de libc6 e ldconfig. Tentei compilar a libc6 a partir do código-fonte, mas sem sucesso. Tem muitas dependências e quando tentei instalar uma dependência, a lib tentou usar algo da libc6. Uma espécie de loop de dependência.
Então, eu reinicio o sistema com o live CD do Q4OS e apenas copio o binário ldconfig para /usr/sbin/ldconfig
. Multar! Agora, apt-get
começou a funcionar novamente (não perfeitamente, mas...). Então descobri como fazer o downgrade da lib:
sudo apt install libc6=2.31-13+deb11u3
Se você não tiver certeza de qual versão usar, execute:
apt list --installed | grep libc6
dentro do CD ao vivo. A saída deve ser algo como:
libc6/stable,now 2.31-13+deb11u3 amd64 [installed]
Depois disso, consegui instalar o Q4OS novamente:
sudo apt install q4os-desktop
Após uma reinicialização, tudo voltou ao normal!
Mas agora, quando executo o Insync, o aplicativo trava após 5 segundos.