「dyld: DYLD_ environment variables being ignored because main executable (>) is setuid or setgid」への対処
ようするに、LD_LIBRARY_PATHやDYLD_LIBRARY_PATHを設定している環境で、実行しようとするファイルにsetuidやsetuidされているだめよ?
ということと理解したので、こんな感じで .zshrcに記述を追加。
precmd() { #略 export LD_LIBRARY_PATH=$LDP export DYLD_LIBRARY #略 } preexec () { LDP=$LD_LIBRARY_PATH DLDP=$DYLD_LIBRARY_PATH #dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/crontab) is setuid or setgid #の暫定対処 COMMAND="${1} " COMMAND1="${${(s: :)COMMAND}[1]}" COMMAND2=`which $COMMAND1` COMMAND3=`ls -al $COMMAND2 2>/dev/null` COMMAND4="${${(s: :)COMMAND3}[1]}" if [ "$COMMAND4[4,4]" == "s" ] ; then unset LD_LIBRARY_PATH unset DYLD_LIBRARY_PATH elif [ "$COMMAND4[7,7]" == "s" ] ; then unset LD_LIBRARY_PATH unset DYLD_LIBRARY_PATH fi }
sudoなどを直接実行するとOKぽい。
ただシェルスクリプトなんかで書いていると駄目。
そんな時は、シェルの中で
unset LD_LIBRARY_PATH unset DYLD_LIBRARY_PATH
でOKかな?
まぁ、実際ほんとにこれでいいのかは謎。
うまくいっているからいいや。
以上。
追伸
あ、お久しぶりです!(ぉ