Feature request: install R in ~/Library/Frameworks
On 07/02/2017 09:02, ?? ?? wrote:
Hi,
On Feb 7, 2017, at 17:46, G?bor Cs?rdi <csardi.gabor at gmail.com> wrote: Hi all, I realize that this is not the typical use case on macOS, but for my work, it would be great to be able to install R into ~/Library/Frameworks. This would allow having different R versions for different users. I am not sure how difficult this would be to implement. I can see that some paths in scripts and makefiles are hardwired to /Library/Frameworks. Is there anything more, perhaps in the binaries as well?
I install R with Fink, which allows you to install R-3.3, R-3.2 and R-3.1. Each of them looks for files in /sw/Library/Frameworks/R.framework/Versions/3.3, 3.2 and 3.1 respectively. Also, CRAN packages for different R versions are installed separately.
Well, you have missed the point. R itself allows you to do that: do read 'R Installation and Administration'. The reason to install R as a framework is to use R.app (and it is no longer the default for a source build). And it is R.app which is tied to /Library/Frameworks/R.framework (and the 'Current' version). Even though there is a Rswitch utility to switch the version R.app invokes, it is unreliable as R.app is built against a particular R version and may well crash if used with another. R.app is not itself versioned, and there is no way to install it telling it to link to a particular version of the R framework. For use as 'R' from a terminal, multiple CRAN distributions (of 3.x.y for different 'x') can easily be installed and used together: that is ?4.3 of the manual. Quite a lot of trouble has been taken to avoid the 'R' front-end script on macOS, and that does involve hard-coding the installation path in many places in the binary distribution. For example otool -L /Library/Frameworks/R.framework/Resources/library/Matrix/libs/Matrix.so /Library/Frameworks/R.framework/Resources/library/Matrix/libs/Matrix.so: Matrix.so (compatibility version 0.0.0, current version 0.0.0) /Library/Frameworks/R.framework/Versions/3.3/Resources/lib/libRlapack.dylib (compatibility version 3.3.0, current version 3.3.2) /Library/Frameworks/R.framework/Versions/3.3/Resources/lib/libRblas.dylib (compatibility version 0.0.0, current version 0.0.0) /Library/Frameworks/R.framework/Versions/3.3/Resources/lib/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0) /Library/Frameworks/R.framework/Versions/3.3/Resources/lib/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0) I do not recall how much of this is done by the R scripts for installing to a framework and how much by the scripts used to build the installer (although AFAIR libgfortran.3.dylib is part of the latter).
Brian D. Ripley, ripley at stats.ox.ac.uk Emeritus Professor of Applied Statistics, University of Oxford