Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos dyld:dyld_uu环境变量被忽略,因为主可执行文件(/usr/bin/sudo)是setuid或setgid_Macos_Command Line_Sudo_Osx Mountain Lion_Dyld - Fatal编程技术网

Macos dyld:dyld_uu环境变量被忽略,因为主可执行文件(/usr/bin/sudo)是setuid或setgid

Macos dyld:dyld_uu环境变量被忽略,因为主可执行文件(/usr/bin/sudo)是setuid或setgid,macos,command-line,sudo,osx-mountain-lion,dyld,Macos,Command Line,Sudo,Osx Mountain Lion,Dyld,由于更新到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,而是仅在需要时设置。那些使用

由于更新到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,而是仅在需要时设置。

那些使用django(python for web)并通过MySQLdb(mysql python模块)使用mysql的人需要设置该变量。 所以我现在只保留警告。

在zsh中:

sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }
这将生成一个子shell,其中sudo抱怨的环境变量未设置,然后执行sudo(通过exec,使现在不必要的父shell立即退出)


我将把它作为一个练习留给读者,让他们移植到bash,等等。

不确定官方的解决方法是什么,但我用这个bashrc黑客解决了它,因为我再也看不到那个该死的警告了

把这个放在/etc/bashrc或你住的任何地方。
似乎已经提到的“修复”只是解决办法,可能不适用于所有用户。这是苹果(至少)知道的一个已知错误:

这个问题最终在OS X Mavericks(10.9)上得到了修复,sudo上不再出现这个消息。

不确定这是否是一个真正的修复,但当我运行Clean Build Folder时,这个错误消失了。在我的.bash_配置文件中,我刚刚注释掉了导出DYLD_库路径=“/usr/local/mysql/lib:$DYLD\u LIBRARY\u PATH。我不太清楚我在那里做了什么,但至少这个恼人的消息停止了。希望这个能修好soon@eneskaya:我想我在某个地方读到过,曾经有一些错误的mysql版本,它们嵌入了错误的库路径。设置DYLD_LIBRARY_路径是解决方案。如果mysql仍然适用于您,我想他们已经解决了。我在
~/.profile
中添加了
unset-LD\u-LIBRARY\u-PATH
,恼人的消息消失了。如果我这样做,这将破坏sql。我建议使用下面的sudo函数:sudo(){(unset-LD\u-LIBRARY\u-PATH-DYLD\u-LIBRARY\u-PATH;exec-command sudo$*)。它也可以在BASH中使用,而且非常优雅。只需将它放在.bashrc中并将其源代码(…bashrc)。对于我来说,我发现如果您安装XCode,可能还有命令行工具组件,则此警告将停止。尝试将此命令行放入/etc/bashrc(需要
chmod+w/etc/bashrc
以允许写入权限),警告消息将消失,谢谢!即使我使用MySQLdb,Pinkos answer对我来说也是有效的
# 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