自从更新到10.8版本后,当我尝试进行sudo命令时,会出现以下错误,这相当令人恼火。
dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid
那是什么意思?希望有人能帮忙。
自从更新到10.8版本后,当我尝试进行sudo命令时,会出现以下错误,这相当令人恼火。
dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid
那是什么意思?希望有人能帮忙。
这似乎是在10.8版本中引入的一个错误,参见此报告。据我所知,唯一的解决方法是不默认设置DYLD_LIBRARY_PATH或LD_LIBRARY_PATH,只在需要时进行设置。
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
。我不太清楚我做了什么,但至少这个烦人的消息停止了。希望这很快就能得到解决。 - eneskaya~/.profile
中添加了unset LD_LIBRARY_PATH
,烦人的消息消失了。 - neeveksudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }
chmod +w /etc/bashrc
允许写入权限),警告消息已消失,谢谢! - Ken Pega不确定官方解决方法在哪里,但我通过这个 bashrc hack 解决了它,因为我无法忍受再看到那该死的警告。
# 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
使用django(用于Web的python)和MySQLdb(Mysql-Python模块)连接mysql的用户需要设置该变量。目前我只是保留警告。
看起来已经提到的“修复”只是一些解决方法,可能并不适用于所有用户。这是一个已知的错误,苹果公司(至少)已经意识到了:http://openradar.appspot.com/11894054
不确定这是否是真正的解决方法,但当我运行“清理构建文件夹”时,此错误消失了。