Problème variable PATH avec commande dpkg

Bonjour à toutes et à tous,

Je suis sur Debian 11 et j’ai voulu mettre à jour Discord avec la commande dpkg qui m’a renvoyé une erreur sur la la variable PATH:

root@Papirate:/home/henri/Téléchargements# dpkg -i discord-0.0.97.deb

dpkg: avertissement: « ldconfig » introuvable dans la variable PATH ou non exécutable
dpkg: avertissement: « start-stop-daemon » introuvable dans la variable PATH ou non exécutable
dpkg: erreur: 2 programmes attendus non trouvés dans la variable PATH ou non exécutables
Note : la variable PATH du superutilisateur doit normalement contenir /usr/local/sbin, /usr/sbin et /sbin

J’ai vérifié le contenu de ma variable PATH avec la commande echo, elle ne contient pas les éléments requis ci-dessus:

root@Papirate:/home/henri/Téléchargements# echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Je suppose qu’il faut que j’édite ma variable PATH et que j’y ajoute les élément manquant mais ici s’arrêtent mes compétences. Quelqu’un peut-il me dépanner?

Cordialement

libc-bin est-il installé ?
Que dit ceci:
apt list -i dpkg libc-bin

Pour root, il te manque /usr/sbin/ dans le chemin (plus utile et fondamental que games…).

Bonjour Verner,

Merci de ta réponse! libc-bin est bien installé:
libc-bin/oldstable-security,now 2.31-13+deb11u13 amd64 [installé]

Tu écris:
Pour root , il te manque /usr/sbin/ dans le chemin.
Comment puis-je faire pour l’ajouter?

salut
ultra classique
j’imagine que quand /root/.profile existe , /etc/profile n’est pas utilisé

or

 if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
fi

n’existe pas dans /root/.profile

mais en même temps,

if [ "$(id -u)" -eq 0 ]; then
      PS1='# '

n’est pas dans /root/.profile , mais le # apparaît quand même , donc je ne sais pas où il est défini.

AU final, tu peux rajouter la ligne dans /root/.profile :NON : je regarde

(message retiré par son auteur, il sera supprimé automatiquement dans 24 heures à moins qu’il ne soit signalé)

Bonjour dindoun,

Merci de t’intéresser à mon problème. Comment puis-faire pour ajouter dans mon PATH ce qui manque?

AU final, tu peux rajouter la ligne dans /root/.profile :NON : je regarde

Tu as bricolé quelque-chose puisque par défaut, le PATH est correct selon user/root.

cat  /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
export PATH

As-tu bricolé quelque-chose ? Si oui, dé-bricoles.

Justement, mon PATH n’est pas correct:

# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Il manque les déclinaisons SBIN, ne figurent que les BIN.

Tout à fait verner mais clairement le PATH du /etc/profile , soit n’est pas lu, soit est réécrit

je crois que j’ai compris :
si tu te loggues avec su root , tu n’as pas le sbin
si tu te loggues avec su - tu as le sbin

Ça j’ai bien compris.
Mais depuis quand as-tu ce problème ???
Depuis l’installation ? ou récemment ?

Lorsque tu es en root (#), que dit ceci:
id -u

id -u me répond 0

Mais depuis quand as-tu ce problème ???
Depuis l’installation ? ou récemment ?

Depuis l’installation.

Tu as ce problème depuis plusieurs années (???) et le découvres maintenant ?
J’ai un peu de mal à y croire.
Debian va passer en version 13, prépare une installation propre, non bricolée.
En attendant, tu peux exécuter ceci quand tu passes en root, ou le rajouter au .bashrc de root.

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

man su :

Pour assurer la rétrocompatibilité, su ne change pas, par défaut, le répertoire
actuel et ne définit que les variables d’environnement HOME et SHELL

-, -l, --login
Démarrer l’interpréteur de commandes comme un interpréteur de connexion avec un
environnement similaire à une connexion réelle :

       •   efface toutes les variables d'environnement, à l'exception de TERM et des
           variables indiquées dans --whitelist-environment ;

       •   initialise les variables d'environnement HOME, SHELL, USER, LOGNAME et PATH ;

       •   se place dans le répertoire personnel de l'utilisateur cible ;

       •   définit argv[0] pour l’interpréteur de commandes à « - » pour faire de
           l’interpréteur de commandes un interpréteur de connexion.

Je viens d’installer debian 11 + Librazik 4 et c’est ma première tentative de mise à jour d’une application.
Librazik 4 (suite d’applications MAO) ne fonctionne qu’avec debian11.

@ Verner, je viens de mettre à jour Discord avec la méthode que tu m’as donnée! Merci à tous les deux de votre aide. Comment je fait pour passer ce fil en "Résolu "?