Ответ 1
Кажется, это ошибка, введенная в 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 по умолчанию, но только при необходимости.
В zsh:
sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }
Это порождает суб-оболочку, в которую сбрасываются SOWO-среды, из-за которых SOHO не отвечает, и затем выполняет 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 "[email protected]"
# restore DYLD_* after sudo finished
export DYLD_LIBRARY_PATH=$BACK
}
# redirect sudo
alias sudo=thesudo
Те, кто использует django (python для Интернета), с mysql через MySQLdb (модуль Mysql-Python), нуждаются в этой переменной. Поэтому я просто предупреждаю об этом.
Кажется, что уже упомянутые "исправления" - это обходные пути, которые могут не работать для всех пользователей. Это известная ошибка, о которой Apple (по крайней мере) знает: http://openradar.appspot.com/11894054
Эта проблема окончательно исправлена в OS X Mavericks (10.9), сообщение больше не появляется на sudo.