48

10.8にアップデートしてから、sudoコマンドを実行しようとすると、次のエラーが発生します。これはかなり面倒です。

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

それはどういう意味ですか?誰もが助けてくれることを願っています。

4

7 に答える 7

43

これは10.8で導入されたバグのようです。このレポートを参照してください。私の知る限り、唯一の回避策は、デフォルトでDYLD_LIBRARY_PATHまたはLD_LIBRARY_PATHを設定することではなく、必要な場合にのみ設定することです。

于 2012-08-22T12:39:53.190 に答える
20

zshの場合:

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

これにより、sudoが文句を言う環境変数が設定されていないサブシェルが生成され、sudoが実行されます(execを介して、不要になった親シェルがすぐに終了します)。

読者がbashなどに移植するための演習として残しておきます。

于 2013-02-26T15:49:03.533 に答える
7

公式の解決策がどこにあるのかはわかりませんが、この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
于 2013-04-17T02:00:19.257 に答える
5

MySQLdb(Mysql-Pythonモジュール)を介してmysqlでdjango(python for web)を使用する場合は、その変数セットが必要です。だから私は今のところ警告を続けます。

于 2013-01-22T09:21:24.737 に答える
1

すでに述べた「修正」は、すべてのユーザーに対して機能するとは限らない回避策にすぎないようです。これは、Appleが(少なくとも)認識している既知のバグです:http://openradar.appspot.com/11894054

于 2013-09-09T23:07:52.787 に答える
1

この問題はOSXMavericks(10.9)で最終的に修正され、sudoでメッセージが表示されなくなりました。

于 2013-10-23T18:31:08.593 に答える
-1

これが本当の修正であるかどうかはわかりませんが、CleanBuildFolderを実行するとこのエラーは消えました

于 2019-01-04T20:22:42.977 に答える