[ESS] toggle between R versions
Martin Maechler
maechler at stat.math.ethz.ch
Wed Feb 6 18:10:10 CET 2008
>>>>> "MWK" == Mark W Kimpel <mwkimpel at gmail.com>
>>>>> on Wed, 06 Feb 2008 11:43:03 -0500 writes:
MWK> Alright, I must be awfully close. Here is my insert into my .emacs
MWK> (setq exec-path (cons
MWK> (expand-file-name "~/R_HOME/R-devel/R-build/bin")
MWK> (cons
MWK> (expand-file-name "~/R_HOME/R-current/R-build/bin")
MWK> exec-path)))
MWK> Whichever ver of R I put inside the first expand-file-name is the one
MWK> that is executed when I hit the "R" icon or "R" under "start process".
MWK> With "start process > other > R-newest" nothing loads with either try.
The question is what exactly is inside
~/R_HOME/R-devel/R-build/bin/
and ~/R_HOME/R-current/R-build/bin/
I guess each has an 'R' (sh script) file in there
However the ESS code expects to find executables
*called*
R
R-2.5.1
R-2.6.1
R-2.6.2
R-devel
R-patched
R-devel-foo
In my setup I use symbolic links to create all of these,
inside typically /usr/local/bin/
Martin
MWK> Is there something wrong with my Lisp code?
MWK> Mark
MWK> Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry
MWK> Indiana University School of Medicine
MWK> 15032 Hunter Court, Westfield, IN 46074
MWK> (317) 490-5129 Work, & Mobile & VoiceMail
MWK> (317) 204-4202 Home (no voice mail please)
MWK> mwkimpel<at>gmail<dot>com
MWK> ******************************************************************
MWK> Martin Maechler wrote:
>>>>>>> "MWK" == Mark W Kimpel <mwkimpel at gmail.com>
>>>>>>> on Wed, 06 Feb 2008 11:16:18 -0500 writes:
>>
MWK> I"m trying to do it Martin's way because I like to keep my
MWK> site-libraries separate from the R folders for ease of upgrade purposes.
MWK> I know have both R-2.6.1 and R-devel on my PATH. From the shell, typing
MWK> "R" gets me 2.6.1 because its first on my PATH; but from ESS now I can't
MWK> get either R to start.
>>
MWK> How can I customize emacs exec-path? From what I have read, it is
MWK> initialized from the PATH variable.
>>
>> Exactly. That's why I tried to say that they are typically equivalent
>> (but not in the case where your own emacs-initialization code
>> modifies exec-path).
>>
>> Martin
>>
MWK> Mark
>>
MWK> Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry
MWK> Indiana University School of Medicine
>>
MWK> 15032 Hunter Court, Westfield, IN 46074
>>
MWK> (317) 490-5129 Work, & Mobile & VoiceMail
MWK> (317) 204-4202 Home (no voice mail please)
>>
MWK> mwkimpel<at>gmail<dot>com
>>
MWK> ******************************************************************
>>
>>
MWK> Martin Maechler wrote:
>> >>>>>>> "RMH" == Richard M Heiberger <rmh at temple.edu>
>> >>>>>>> on Tue, 5 Feb 2008 23:57:18 -0500 writes:
>> >>
RMH> That is supposed to work on Linux with no further
RMH> intervention from the user. Please reply to the list
RMH> with which versions of OS, emacs, ESS you are using.
RMH> Are you doing anything strange in your site-start.el or
RMH> .emacs file? Where are the R files living? Are they
RMH> in the default place for Linux distributions? I am
RMH> very puzzled that Other/ doesn't contain at least three
RMH> items: R-newest, R-2.6.1, R-devel. They are usually
RMH> placed on that menu automatically when ess-site is
RMH> started.
>> >>
RMH> Try manually entering
RMH> M-x R-devel
RMH> and let the list know if that was able to start the alternate version.
>> >>
>> >> For all this to work, these versions of R must be in Mark's
>> >> PATH when emacs is started, or, actually rather in
>> >> Emacs' exec-path variable at the time the ESS lisp code is
>> >> loaded.
>> >>
>> >>
>> >>
>> >>
RMH> -----Original Message-----
RMH> From: Mark W Kimpel [mailto:mwkimpel at gmail.com]
RMH> Sent: Tuesday, February 05, 2008 11:40 PM
RMH> To: Richard M. Heiberger
RMH> Cc: ess-help at stat.math.ethz.ch
RMH> Subject: Re: [ESS] toggle between R versions
>> >>
RMH> Richard,
>> >>
RMH> This was the first thing I tried, but the only thing listed under
RMH> "other" is "R-newest", which when I tried it, loaded R-2.6.1 just as "R"
RMH> does. I am not using Windows, which may keep track of versions in the
RMH> registry, but Linux, where I have to put a symbolic link to R in /usr/bin
>> >>
RMH> mark
>> >>
RMH> Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry
RMH> Indiana University School of Medicine
>> >>
RMH> 15032 Hunter Court, Westfield, IN 46074
>> >>
RMH> (317) 490-5129 Work, & Mobile & VoiceMail
RMH> (317) 204-4202 Home (no voice mail please)
>> >>
RMH> mwkimpel<at>gmail<dot>com
>> >>
RMH> ******************************************************************
>> >>
>> >>
RMH> Richard M. Heiberger wrote:
>> >> >> When you are in a myfile.r buffer, click on the emacs menu item
>> >> >> ESS/Start Process/Other/
>> >> >> This will give you a list of all versions of R on your computer.
>> >> >> Click one of them and it will execute inside an *R* buffer.
>> >> >>
>> >> >> -----Original Message-----
>> >> >> Behalf Of Mark W Kimpel
>> >> >> Sent: Tuesday, February 05, 2008 11:11 PM
>> >> >> Subject: [ESS] toggle between R versions
>> >> >>
>> >> >> I have both R-2.6.1 and R-devel installed on Ubuntu Gutsy, each with
>> >> >> their own site-library, although currently I go into .Rprofile to
>> >> >> manually change with site-library will be loaded. When starting R from
>> >> >> within ESS-Emacs, I would like to be able to instruct which version I
>> >> >> want to use. Is this possible?
>> >>
>> >> yes. That's what Rich has been trying to help you with above
>> >>
>> >> >> For this to work, I would also need
>> >> >> .Rprofile to detect the version of R and use the appropriate site-library.
>> >>
>> >> that's the R part - maybe even more easy for you.. :
>> >> I do similar things.
>> >> If all the R versions you use are good enough to have getRversion(),
>> >> then use that.
>> >> The help ?getRversion contains this as part of its
>> >> examples :
>> >>
>> >> if(getRversion() <= "2.5.0") { ## work around missing feature
>> >> cat("Your version of R, ", as.character(getRversion()),
>> >> ", is outdated.\n",
>> >> "Now trying to work around that ...\n", sep = "")
>> >> }
>> >>
>> >> otherwise {for *old* versions of R}, you need
>> >> RVersion <- paste(R.version$major, R.version$minor, sep=".")
>> >>
>> >> *and* then must be more careful with the if(.) but
>> >> if(RVersion == "2.6.1")
>> >> will also work and most '<=' or '>=' will work correctly as well
>> >>
>> >> >>
>> >> >> Can all or any of this be done?
>> >>
>> >> yes indeed
>> >>
>>
MWK> ______________________________________________
MWK> ESS-help at stat.math.ethz.ch mailing list
MWK> https://stat.ethz.ch/mailman/listinfo/ess-help
More information about the ESS-help
mailing list