dyld: переменные среды DYLD_ игнорируются, поскольку основной исполняемый файл (/usr/bin/sudo) имеет setuid или setgid

после обновления до 10.8 я получаю следующую ошибку при попытке выполнить команду sudo, что довольно раздражает.

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

Что это должно означать? Я надеюсь, что кто-нибудь может помочь.


person eneskaya    schedule 22.08.2012    source источник
comment
Что касается меня, я обнаружил, что если вы устанавливаете XCode и, возможно, также компонент инструментов командной строки, это предупреждение прекращается.   -  person EMiller    schedule 22.04.2013


Ответы (7)


Похоже, это ошибка, появившаяся в версии 10.8, см. этот отчет. Насколько я могу судить, единственным обходным решением является не установка DYLD_LIBRARY_PATH или LD_LIBRARY_PATH по умолчанию, а только при необходимости.

person Erik Hesselink    schedule 22.08.2012
comment
В порядке. В моем .bash_profile я только что закомментировал export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH. Я не совсем знаю, что я там сделал, но, по крайней мере, это надоедливое сообщение прекратилось. Надеюсь, это скоро исправят - person eneskaya; 22.08.2012
comment
@eneskaya: кажется, я где-то читал, что раньше были версии mysql с ошибками, в которых был неправильный путь к встроенным библиотекам. Установка DYLD_LIBRARY_PATH была решением. Если mysql все еще работает для вас, я думаю, они это исправили. - person Erik Hesselink; 22.08.2012
comment
@eneskaya: Вы используете MySQL? MySQL все еще работает для вас? - person tholu; 24.10.2012
comment
Я добавил unset LD_LIBRARY_PATH в ~/.profile, и раздражающее сообщение исчезло. - person neevek; 27.10.2012
comment
Это сломает sql для меня, если я это сделаю. - person jahrichie; 08.11.2012
comment
Я бы рекомендовал использовать функцию sudo ниже: sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; команда exec sudo $* ) }. Он также работает в BASH и является элегантным. Просто поместите его в свой .bashrc и загрузите (..bashrc). - person speeves; 20.05.2013

В зш:

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

Это порождает вложенную оболочку, в которой переменные среды, на которые sudo жалуется, не установлены, а затем выполняет sudo (через exec, так что теперь ненужная родительская оболочка немедленно завершает работу).

Я оставлю читателю в качестве упражнения портирование на bash и др.

person Pinko    schedule 26.02.2013
comment
Попытался поместить эту строку команды в /etc/bashrc (нужно chmod +w /etc/bashrc, чтобы разрешить запись), и предупреждающее сообщение исчезло, спасибо! - person Ken Pega; 31.07.2013

Не уверен, где официальное решение для этого, но я решил это с помощью этого взлома 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
person jahrichie    schedule 17.04.2013

Тем, кто использует django (python для Интернета) с mysql через MySQLdb (модуль Mysql-Python), нужен этот набор переменных. Так что пока просто сохраняю предупреждение.

person iannakin    schedule 22.01.2013
comment
У меня это сработало с ответом Pinkos, хотя я использую MySQLdb - person F Lekschas; 12.08.2013

Кажется, что уже упомянутые «исправления» — это просто обходные пути, которые могут не работать для всех пользователей. Это известная ошибка, о которой Apple (по крайней мере) знает: http://openradar.appspot.com/11894054< /а>

person Community    schedule 09.09.2013

Эта проблема окончательно исправлена ​​в OS X Mavericks (10.9), сообщение больше не появляется в sudo.

person Giannis    schedule 23.10.2013

Не уверен, что это настоящее исправление, но эта ошибка исчезла, когда я запустил папку Clean Build.

person Liliana Terry    schedule 04.01.2019