web-dev-qa-db-fra.com

dpkg ne peut pas trouver ldconfig / start-stop-daemon dans la variable PATH

J'essayais d'installer bsd-mailx utilitaire le paquet a été installé mais je me pose des questions sur l'erreur.

Voici l'erreur que j'obtiens:

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)
45
user87142

Tout d'abord, les lignes qui vous intéressent vraiment sont:

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

Ces erreurs ont été signalées à plusieurs reprises par les utilisateurs de Debian et Ubuntu (vous pouvez en fait les rechercher sur Google pour plus d'informations). Il semble que la variable PATH ne soit pas correctement définie lorsque l'utilisateur essaie d'exécuter une commande via Sudo, ce qui est probablement ce que vous essayez de faire.

Solution 1: définir le chemin d'accès sécurisé par défaut de Sudo

Ouvert /etc/sudoers en exécutant visudo dans votre terminal et assurez-vous que le fichier comprend la ligne suivante:

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

Plus d'informations sur ce problème peuvent être trouvées ici (Problèmes et astuces> PATH non défini).

Solution 2: utilisez directement le compte root

N'utilisez pas Sudo, passez simplement à root pour exécuter vos commandes. Exécutez l'une des commandes suivantes pour ce faire:

$ Sudo -i
$ su 

Une fois connecté en tant que root, exécutez simplement votre apt-get commandes à nouveau:

# apt-get ...

Vous devrez peut-être d'abord définir le PATH de root. Éditer /root/.bashrc (avec les privilèges root bien sûr), et ajoutez la ligne suivante:

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

Solution 3: essayez de passer la variable PATH à Sudo au moment de l'exécution.

Il suffit de préfixer l'appel Sudo avec la redéfinition de la variable PATH:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Sudo apt-get ...
62
John WH Smith

en quelque sorte, j'ai eu le même problème.

Veuillez lire attentivement votre message d'erreur et vous trouverez la solution. Il y a une note qui dit:

Remarque: le CHEMIN de root doit généralement contenir/usr/local/sbin,/usr/sbin et/sbin.

Ensuite, j'ai vérifié mon chemin et d'une manière ou d'une autre je manquais le/sbin sur mon chemin.

echo $ PATH

puis j'ai ajouté et le problème avait disparu. :)

export PATH = "$ PATH:/sbin"

Tcharam!

3
Danilo Souza

J'ai eu ce problème aujourd'hui et l'ai résolu en commentant la ligne (en utilisant un #)

Defaults    exempt_group=Sudo

à partir de mon fichier/etc/sudoers en utilisant

# visudo

comme root

Cette modification obligera Sudo à utiliser la variable par défaut secure_path définie dans le même fichier.

1
Cabub

L'absence de description dans la question rend difficile l'identification du problème exact dans cette situation, mais j'ai récemment rencontré le même problème:

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

La solution consistait à utiliser su - au lieu de su (ce qui est généralement mieux, comme détaillé dans les réponses à cette question ):

user@debian:su -
Password: 
root@debian:~# cd /home/user/Downloads/
root@debian:/home/user/Downloads# dpkg -i [Some package]
1
Clément