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を設定することではなく、必要な場合にのみ設定することです。
zshの場合:
sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }
これにより、sudoが文句を言う環境変数が設定されていないサブシェルが生成され、sudoが実行されます(execを介して、不要になった親シェルがすぐに終了します)。
読者がbashなどに移植するための演習として残しておきます。
公式の解決策がどこにあるのかはわかりませんが、この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
MySQLdb(Mysql-Pythonモジュール)を介してmysqlでdjango(python for web)を使用する場合は、その変数セットが必要です。だから私は今のところ警告を続けます。
すでに述べた「修正」は、すべてのユーザーに対して機能するとは限らない回避策にすぎないようです。これは、Appleが(少なくとも)認識している既知のバグです:http://openradar.appspot.com/11894054
この問題はOSXMavericks(10.9)で最終的に修正され、sudoでメッセージが表示されなくなりました。
これが本当の修正であるかどうかはわかりませんが、CleanBuildFolderを実行するとこのエラーは消えました