[R-SIG-Mac] How to start two different versions of R on a Mac (in emacs)?

Steve Lianoglou mailinglist.honeypot at gmail.com
Fri Sep 16 17:03:42 CEST 2011


Hi,

There is also a (somehow recent) post on the bioc-devel mailing list
from Kasper that can help here, too:

https://stat.ethz.ch/pipermail/bioc-devel/2011-July/002684.html

He assumes you've downloaded R-2.13 and and R-devel binaries from
r.research.att.net and install via the `tar fvxz R*.tar.gz -C /`

He then has a shell script (which you need to fix the line wrapping on
-- I provide fixed version as a gist below) that does some minor
surgery to symbolic links and changes some relative paths to absolute
ones in the various ".../Resources/bin/R" files.

At the end of the day, you will have R-2.13.1 installed and invokable
from the cmd line as "R" (or R-2.13), and the devel branch is
invokable as R-devel.

I just used that for the R-devel bits (ie, I commented out things that
have to do w/ R-2.13) and successfully compiled a mixed R/C package
from source in the R-devel that I just downloaded and "relinked". I
made a gist of the script from Kasper's post and commented out the
lines that were messing around with R-2.13 for now:

https://gist.github.com/1222291

Perhaps you will find it helpful and hopefully not too dangerous, but
use at your own risk, of course. Please be sure to read Kasper's
original post and don't just run the script I linked to in the gist
without understanding what it does. If there are any unintended
side-effects, you'll have to reinstall your R versions from scratch,
or fix your installed `.../Resources/bin/R` scripts by hand.

HTH,
-steve


On Fri, Sep 16, 2011 at 9:18 AM, Simon Urbanek
<simon.urbanek at r-project.org> wrote:
>
> On Sep 16, 2011, at 12:57 AM, Hofert Jan Marius wrote:
>
>>
>> On 2011-09-16, at 02:30 , Simon Urbanek wrote:
>>
>>>
>>> On Sep 14, 2011, at 3:02 PM, Hofert Jan Marius wrote:
>>>
>>>> Dear Simon,
>>>>
>>>> thanks for your help, that clarified a lot.
>>>> As I could read it is not "recommended" to make the adjustment.
>>>>
>>>> Can RSwitch be called from the command line? If so, one could at least create a command (or alias) "R-2.13" that first calls RSwitch and sets the version accordingly and then starts R. That would be quite convenient.
>>>>
>>>
>>> Actually, it's the other way around - switching versions is trivial from the command line simply using "ln" (see the FAQ) so obviously you can do that in the script. RSwitch is just a wrapper that allows you to do that from the GUI. But note that the issue is that the Current link can only be correct for one version, so you can use one or the other but not both at the same time. Setting R home to the versioned version allows you to use both at the same time but some issues remain (compiling packages etc.).
>>>
>>> Cheers,
>>> Simon
>>
>> Dear Simon,
>>
>> thanks for helping.
>>
>> I realized that setting it with ln is just a convenience [not having to click anything], but of course that does not imply that one can suddenly open two versions. I even tried and one runs into problems quite quickly.
>> That's a pity, I have to admit that this is the first time that the Mac is not behaving nicely and inferior to Linux. I don't have Linux installed but as far as I know from Linux users, they can have multiple versions installed *and* work with them in parallel. As one can read on http://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html#Why-is-R_002ehome_0028_0029-not-versioned_003f : "The advanatage of this setup is that it is possible to install multiple R versions in parallel and they all will be fully functional ...". Obviously it is not an advantage in comparison to Linux systems. I was wondering about that, that's why I asked.
>>
>
> I think you may have missed my first e-mail -- if you change the R home path to the *versioned* path then your home is no longer dependent on the Current link and thus you get the same setup as on Linux.
>
> The only remaining difference is compilation of packages which uses the R framework and thus that does rely on the Current link. You have several choices there - you can build R without a framework (that's how it's built on Linux and some people prefer to use it that way on the Mac as well), or you can run it in place or you can change the flags of your installed R to link libR directly. Obviously, this only makes sense if you want to build packages in two different R versions at exactly the same time ...
>
> Cheers,
> Simon
>
>
>>
>>
>>>
>>>
>>>>
>>>> On 2011-09-14, at 20:39 , Simon Urbanek wrote:
>>>>
>>>>>
>>>>> On Sep 14, 2011, at 2:25 PM, Hofert Jan Marius wrote:
>>>>>
>>>>>> Dear expeRts,
>>>>>>
>>>>>> I recently switched to emacs (aquamacs) and I am amazed by its capabilities. I used to use RSwitch to switch between R-2.13 and R-2.14. Since I am now able to start R in different frames of emacs, I was wondering if I can simply start R-2.13 in one frame and R-2.14 in another frame.
>>>>>>
>>>>>> On experimenting, the first thing I realized was that in a terminal, I only have "R", "R32" and "R64" available; so no "R-2.13.32bit", "R-2.14.32bit", "R-2.13.64bit", "R-2.14.64bit" [or similar]. If I start "R", it starts the version that RSwitch has selected. But that means I can't start different R versions at the same time... However, I know that it works on Linux, so is there a Mac solution, too? It would be nice if one is not required to use RSwitch but can simply choose in emacs which R version should be started.
>>>>>>
>>>>>> The first step seems to be to locate the different installed R versions, which should probably be in /Library/Frameworks/R.framework/Versions/2.13/Resources and /Library/Frameworks/R.framework/Versions/2.14/Resources. But if RSwitch points to R-2.14 and I start the R version in the former directory (so R-2.13), it starts R-2.14 anyway...
>>>>>>
>>>>>
>>>>>
>>>>> For the command-line R (and only the command line R!) you can simply create a copy of the R launcher script and replace all occurrences of the R home path with the full *versioned* home path, so for example for 2.13 you would use something like
>>>>>
>>>>> sed 's:/Library/Frameworks/R.framework/Resources:/Library/Frameworks/R.framework/Versions/2.13/Resources:g' R > R-2.13
>>>>>
>>>>> This will make your R script independent of the current framework version. However, note that some things will break - for example you won't be able to compile packages properly. For details see the FAQ:
>>>>> http://r.research.att.com/bin/macosx/RMacOSX-FAQ.html#Why-is-R_002ehome_0028_0029-not-versioned_003f
>>>>>
>>>>> Cheers,
>>>>> Simon
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>



-- 
Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact



More information about the R-SIG-Mac mailing list