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

7

49

since an update to 10.8 I get the following error, when trying to do a sudo command, which is pretty annoying.

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

What does that have to mean? I hope anyone can help.

Debase answered 22/8, 2012 at 0:3 Comment(1)
For me, I found that if you install XCode and probably also the Command Line Tools component, that this warning stops.Washedup
M
43

This seems to be a bug introduced in 10.8, see this report. As far as I can tell, the only workaround is not setting DYLD_LIBRARY_PATH or LD_LIBRARY_PATH by default, but only when needed.

Mccracken answered 22/8, 2012 at 12:39 Comment(6)
Ok. In my .bash_profile I just commented out export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH. I don't quite know what I did there, but at least this annoying message stopped. Hope this'll get fixed soonDebase
@eneskaya: I think I read somewhere that there used to be buggy mysql versions that had the wrong path to the libraries embedded. Setting that DYLD_LIBRARY_PATH was the solution. If mysql still works for you, I guess they fixed it.Mccracken
@eneskaya: Are you using mySQL? Does mySQL still work for you?Aguedaaguero
I added unset LD_LIBRARY_PATH in ~/.profile, and the annoying message disappeared.Trigonous
This will break sql for me if I do that.Herculean
I would recommend using the sudo function below: sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }. It works in BASH, as well, and is elegant. Just place it in your .bashrc and source it (. .bashrc).Scuppernong
F
20

In zsh:

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

This spawns a sub-shell in which the environment variables sudo complains about are unset, and then executes sudo (via exec so that the now-unecessary parent shell exits immediately).

I'll leave it as an exercise to the reader to port to bash, et al.

Frink answered 26/2, 2013 at 15:49 Comment(1)
Tried putting this line of command in /etc/bashrc (need chmod +w /etc/bashrc to allow write permission) and the warning message is gone, thanks!Watercourse
H
7

Not sure where the official solve is for this, but I solved it with this bashrc hack, because I couldn't deal with seeing that damn warning any longer.

put this in the /etc/bashrc or wherever yours lives.

# 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
Herculean answered 17/4, 2013 at 2:0 Comment(0)
E
5

Those who use django (python for web), with mysql through MySQLdb (Mysql-Python module), need that variable set. So I just keep the warning for now.

Ealdorman answered 22/1, 2013 at 9:21 Comment(1)
It worked for me with Pinkos answer even though I use MySQLdbCustoms
U
1

It seems the already mentioned "fixes" are just workarounds that may not work for all users. This is a known bug that Apple is (at least) aware of: http://openradar.appspot.com/11894054

Underfur answered 9/9, 2013 at 23:7 Comment(0)
C
1

This issue is finally fixed on OS X Mavericks (10.9), the message no longer comes up on sudo.

Casmey answered 23/10, 2013 at 18:31 Comment(0)
C
-1

Not sure if this is a true fix, but this error disappeared when I ran Clean Build Folder

Cerveny answered 4/1, 2019 at 20:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.