On Sep 2, 2012, at 4:32 AM, peter dalgaard wrote:
>
> On Sep 1, 2012, at 19:30 , Dennis Fisher wrote:
>
>> Colleagues,
>>
>> I recently upgraded my OS to Mountain Lion. Previously, when ran R from a
>> terminal and I issued the command:
>> PSOUTPUT <- system("ps", intern=TRUE)
>> the output returned without a problem.
>>
>> Since upgrading to Mountain Lion (R 2.15.1), the same command returns the
>> message:
>> dyld: DYLD_ environment variables being ignored because main executable
>> (/bin/ps) is setuid or setgid
>> Issuing the "ps" command directly from the terminal or from Rgui does not
>> create the same behavior.
>>
>> I tracked the problem down to the following. Running R in a terminal:
>> > grep("DYLD", system("set", intern=T), value=T)
>> [1]
>> "DYLD_LIBRARY_PATH=/Library/Frameworks/R.framework/Resources/lib/x86_64"
>> Executing the same command from Rgui:
>> > grep("DYLD", system("set", intern=T), value=T)
>> character(0)
>> And, in a terminal:
>> set | grep DYLD
>> returns nothing.
>>
>> It appears that R64, but not Rgui, sets DYLD_LIBRARY_PATH. Can anyone offer
>> an explanation? I discovered that:
>> Sys.unsetenv("DYLD_LIBRARY_PATH")
>> prevents the problem. Do I incur any hidden risks by executing that command?
>>
>
> Well, something could be using the path.... If it's not there in R.app, I
> have a hunch that nothing actually _is_ using it, but you need a better
> expert than me to be sure (Simon?).
>
DYLD_LIBRARY_PATH is only set in the R startup script to make R relocatable -
i.e. when you don't use the framework it is set so R can find libR etc. The GUI
doesn't need it because it is using the framework. Framework installations
(like the CRAN binary) don't need it, either, but we're not stripping it from
the R script as to not mess with it unnecessarily (we could, though, but it
would change the behavior slightly - not for "normal" R use, but as it is you
can put extra libraries that you want only R to use in $R_HOME/lib and they
will be preferred to system ones).
> Anyways, a bit of Googling indicates that this has been an annoyance for
> others as well (e.g., affecting sudo for MySQL users), and that it is fixed
> in the 10.8.1 upgrade of Mountain Lion, so perhaps just wait it out?
>
> (I sincerely hope that only the warning is new and that setuid programs
> always have ignored the dynamic library path. Otherwise it would be a
> security hole the size of a truck...)
>
Yes, in fact setuid binaries have even more safeguards:
$ DYLD_LIBRARY_PATH=/Library/Frameworks/R.framework/Resources/lib ./lr
dyld: Library not loaded: libR.dylib
Referenced from: /Users/urbanek/./lr
Reason: unsafe use of relative rpath libR.dylib in /Users/urbanek/./lr with
restricted binary
so I guess Apple was just trying to make it more explicit.
Cheers,
Simon
> -pd
>
>> Dennis
>>
>> Dennis Fisher MD
>> P < (The "P Less Than" Company)
>> Phone: 1-866-PLessThan (1-866-753-7784)
>> Fax: 1-866-PLessThan (1-866-753-7784)
>> www.PLessThan.com
>>
>> _______________________________________________
>> R-SIG-Mac mailing list
>> [email protected]
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Email: [email protected] Priv: [email protected]
>
> _______________________________________________
> R-SIG-Mac mailing list
> [email protected]
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
>
_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac