[R-SIG-Mac] Feature request: install R in ~/Library/Frameworks

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Feb 7 11:22:38 CET 2017

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 
	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

More information about the R-SIG-Mac mailing list