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

为君一笑 提交于 2019-12-03 02:59:29

问题


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.


回答1:


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.




回答2:


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.




回答3:


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



回答4:


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.




回答5:


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




回答6:


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




回答7:


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



来源:https://stackoverflow.com/questions/12064725/dyld-dyld-environment-variables-being-ignored-because-main-executable-usr-bi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!