48 votes

dyld: les variables d'environnement DYLD_ sont ignorées car le principal exécutable (/ usr / bin / sudo) est setuid ou setgid

depuis une mise à jour à 10.8, l'erreur suivante apparaît lorsque j'essaie de faire une commande sudo, ce qui est plutôt gênant.

 dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid
 

Qu'est-ce que cela signifie? J'espère que tout le monde peut aider.

43voto

Erik Hesselink Points 1570

Cela semble être un bogue introduit dans 10.8, voir ce rapport . Autant que je sache, la seule solution de contournement consiste à ne pas définir DYLD_LIBRARY_PATH ou LD_LIBRARY_PATH par défaut, mais uniquement en cas de besoin.

20voto

Pinko Points 857

En zsh:

 sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }
 

Cela engendre un sous-shell dans lequel les variables d'environnement dont sudo se plaint est non définie, puis exécute sudo (via exec pour que le shell parent désormais non nécessaire quitte immédiatement).

Je laisserai cela comme un exercice au lecteur de mettre en communication bash, et al.

7voto

jahrichie Points 523

Je ne sais pas trop où est la solution officielle pour cela, mais je l'ai résolu avec ce bidouillage, parce que je ne pouvais plus supporter de voir ce foutu avertissement.

mettez ceci dans le répertoire / etc / bashrc ou là où vous résidez.

 # set DYLD_* for my normal programs
DYLD_LIBRARY_PATH='..'

# set an alternative sudo
thesudo()
{
# back up the DYLD_* variables
local BACK=$DYLD_LIBRARY_PATH
# unset DYLD_*
unset DYLD_LIBRARY_PATH
# calling sudo
/usr/bin/sudo "$@"
# restore DYLD_* after sudo finished
export DYLD_LIBRARY_PATH=$BACK
}

# redirect sudo
alias sudo=thesudo
 

5voto

iannakin Points 64

Ceux qui utilisent django (python pour le Web), avec mysql via MySQLdb (module Mysql-Python), ont besoin de cet ensemble de variables. Donc, je garde l'avertissement pour l'instant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X