自从更新到10.8后,当我尝试执行sudo命令时,我得到了以下错误,这是非常恼人的。
dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid
这意味着什么?我希望有人能帮上忙。
发布于 2012-08-22 20:39:53
这似乎是10.8中引入的错误,请参阅this report。据我所知,唯一的解决方法不是默认设置DYLD_LIBRARY_PATH或LD_LIBRARY_PATH,而是仅在需要时设置。
发布于 2013-02-26 23:49:04
在zsh中:
sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }
这将产生一个子shell,其中未设置sudo所抱怨的环境变量,然后执行sudo (通过exec,以便现在不需要的父shell立即退出)。
我将把它留给读者作为练习,从port到bash等等。
发布于 2013-04-17 10:00:19
不知道官方解决方案在哪里,但我用bashrc hack解决了它,因为我再也不能处理看到那个该死的警告了。
将其放入/etc/bashrc或您所在的任何位置。
# 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
https://stackoverflow.com/questions/12064725
复制相似问题