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

Depuis une mise à jour vers 10.8, j’obtiens l’erreur suivante lorsque j’essaie de faire une commande sudo, ce qui est plutôt ennuyeux.

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

Qu’est-ce que cela doit signifier? J’espère que n’importe qui peut aider.

Cela semble être un bug introduit dans 10.8, voir ce rapport . Pour autant que je sache, la seule solution consiste à ne pas définir DYLD_LIBRARY_PATH ou LD_LIBRARY_PATH par défaut, mais uniquement lorsque cela est nécessaire.

Dans zsh:

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

Cela crée un sous-shell dans lequel les variables d’environnement dont se plaint sudo sont désactivées, puis exécute sudo (via exec pour que le shell parent désormais inutile se ferme immédiatement).

Je vais laisser au lecteur le soin de mettre en communication avec bash, et al.

Je ne suis pas certain de savoir où se trouve la solution officielle, mais je l’ai résolu avec ce hack de bashrc, car je ne pouvais plus supporter de voir cet avertissement.

mettez ceci dans / etc / bashrc ou partout où vous vivez.

 # 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. Donc je garde l’avertissement pour le moment.

Il semble que les “correctifs” déjà mentionnés ne soient que des solutions de contournement qui peuvent ne pas fonctionner pour tous les utilisateurs. Ceci est un bogue connu dont Apple est (au moins) conscient: http://openradar.appspot.com/11894054

Ce problème est finalement résolu sur OS X Mavericks (10.9), le message ne s’affiche plus sur sudo.