使dyld:DYLD_环境变量被忽略,因为主要的可执行文件(在/ usr /斌/须藤)为setuid

2019-07-31 03:31发布

由于更新到10.8,我得到以下错误,试图做一个sudo命令,这是非常恼人的当。

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

这是什么有什么意思? 我希望有人可以帮助。

Answer 1:

这似乎是一个错误在10.8介绍,请参见本报告 。 据我所知道的,唯一的解决方法不是默认设置DYLD_LIBRARY_PATH或LD_LIBRARY_PATH,但只有在需要的时候。



Answer 2:

在zsh中:

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

这将生成一个子shell中的环境变量sudo的抱怨都没有设置,然后执行sudo的(通过EXEC使现已不必要的母贝立即退出)。

我会离开它作为一个练习读者端口来砸等。



Answer 3:

不知道在哪里的官方解决是这个,但是我这个黑客的bashrc解决它,因为我无法看到那个该死不再警告处理。

把这个在/ 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


Answer 4:

这些谁使用Django(蟒蛇为网络),通过MySQLdb的(在MySQL-Python模块)的MySQL,需要一个变量集。 所以,我只是不停的警告现在。



Answer 5:

这似乎已经提到的“修复”只是解决方法,可能无法为所有的用户。 这是一个已知的bug,苹果(至少)意识到: http://openradar.appspot.com/11894054



Answer 6:

这个问题终于固定在OS X小牛队(10.9),该消息不再出现在须藤。



Answer 7:

不知道这是一个真正的修复,但这个错误消失了,当我跑干净生成文件夹



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