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.
Cela semble être un bogue introduit dans 10.8, voir ce rapport . Autant que je sache, la seule solution de contournement n'est pas de définir DYLD_LIBRARY_PATH ou LD_LIBRARY_PATH par défaut, mais uniquement lorsque cela est nécessaire.
En zsh:
Sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command Sudo $* ) }
Cela génère 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 parent Shell, devenu inutile, quitte immédiatement).
Je laisserai cela comme un exercice au lecteur de mettre en communication bash, et al.
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 gérer cet avertissement.
# 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
Ceux qui utilisent Django (python pour le Web), avec mysql via MySQLdb (module Mysql-Python), ont besoin de cet ensemble de variables . Je garde donc cet avertissement pour le moment.
Ce problème est enfin résolu sur OS X Mavericks (10.9), le message ne s'affiche plus sous Sudo.
Il semble que les "correctifs" déjà mentionnés ne sont que des solutions de contournement qui pourraient ne pas fonctionner pour tous les utilisateurs. C'est un bogue connu dont Apple est (au moins) conscient: http://openradar.appspot.com/11894054
Pas sûr qu'il s'agisse d'un vrai correctif, mais cette erreur a disparu lorsque j'ai lancé Clean Build Folder