[ESS] Re : Re : Re: Re : Re: R-versions
Vitalie Spinu
spinuvit at gmail.com
Mon Oct 27 20:34:33 CET 2014
The problem seems to be that both of your Rs are named R. So ESS will
pick only one of them. It looks like older path in exec-path takes
precedence. In that case it's a bug.
As mentioned earlier in this thread, in order to get all your R's
detected you simply need to simlink them to ~/bin:
ln -s /actuaria/application/ess_app/RevolutionR/bin/R ~/bin/R-3-revo
ln -s /actuaria/application/terr/terr21/bin/R ~/bin/R-3-terr
ln -s /actuaria/application/ess_app/R-patched/bin/R ~/bin/R-patched
No exec-path hackery is necessary.
Vitalie
>>> "Gérald Jean" on Mon, 27 Oct 2014 10:46:12 -0400 wrote:
> Hello Martin,
> thanks again for your explanations. I am back to work this morning and trying to understand what is going on.
> "/usr/bin" is in my PATH, calling "echo $PATH" either directly from the shell or from Emacs' shell yields the same result and "/usr/bin" is included. It is also included in the Emacs' exec-path variable.
> Starting R either from the native shell or from Emacs' shell starts the latest installed R version, i.e. 3.1.1
> Without the line:
> (setq inferior-R-program-name "/usr/bin/R")
> in my .emacs, starting R from Emacs' ESS starts the patched version installed in:
> /actuaria/application/ess_app/R-patched/bin
> To make this patched version of R available, and third parties versions of R available I had these lines in my .emacs
> (setq exec-path (cons "/actuaria/application/ess_app/RevolutionR/bin" exec-path))
> (setq exec-path (cons "/actuaria/application/terr/terr21/bin" exec-path))
> (setq exec-path (cons "/actuaria/application/ess_app/R-patched/bin" exec-path))
> If I comment out the line regarding the R-patched version and also comment out the line
> (setq inferior-R-program-name "/usr/bin/R")
> everything is fine, ESS starts the latest version of R, BUT R-patched is not
> available anymore. How do I set things up so both are available? I do have write
> permission ine the "/actuaria/applications/..." directories but not in
> "/user/bin" and other system's directories.
> Thanks,
> Gérald
> Le 10/10/14, Martin Maechler <maechler at stat.math.ethz.ch> a écrit :
>> >>>>> Gérald Jean <gerald.jean at videotron.ca>
>> >>>>> on Thu, 9 Oct 2014 13:55:23 -0400 writes:
>>
>> > Yes,
>> > in fact several times as I played with the settings in my .emacs, trying to make it work. But it works now with the inclusion of Ista's settings.
>>
>> Well, but that is really a "last resort" workaround that should
>> never be necessary.
>> I have not used such a setting for more than 10 years probably !
>>
>> At startup, ESS tries (quite a bit) to find all versions of R
>> installed on your computer, i.e., (as Vitalie mentioned) in your
>> PATH (environment variable) or more precisely in the exec-path
>> emacs lisp variable - which is typically initialized from the
>> above PATH (and other emacs settings).
>>
>> If "the rest" of your computer / emacs setup is "sane", it just
>> *should* find the R version.
>>
>> More technically what happens:
>> In ess-site.el, there's a function ess-r-s-versions-creation
>> defined and called.
>> For R, it makes use of the the function
>> ess-r-versions-create you could re-call yourself via M-x ess-r-versions-create.
>> That functions (re)creates a global variable
>>
>> ess-r-versions-created
>>
>> which you can ask about (and see the value) via
>>
>> C-h v ess-r-versions-created
>>
>> For me, its content is humongous, because I - as R core member
>> and "R archaelogist" try to keep many versions of R being available:
>>
>> So for me, the above shows
>>
>> ("R-1.9.1" "R-1.9.0" "R-1.8.0" "R-1.7.1" "R-1.7.0" "R-1.7" "R-1.6.2" "R-1.6.1"
>> "R-1.6.0" "R-1.5.1" "R-1.5.0" "R-1.4.1" "R-1.4.0" "R-1.3.1" "R-1.3.0"
>> "R-1.2.3" "R-1.2.2" "R-1.2.1" "R-1.2.0" "R-1.1.1" "R-1.1.0" "R-1.0.1"
>> "R-1.0.0" "R-2-debian" "R-2.9.2" "R-2.9.1" "R-2.9.0" "R-2.8.1" "R-2.8.0"
>> "R-2.7.2" "R-2.7.1" "R-2.7.0" "R-2.6.2" "R-2.6.1" "R-2.6.0" "R-2.5.1"
>> "R-2.5.0" "R-2.4.1" "R-2.4.0" "R-2.3.1" "R-2.3.0" "R-2.2.1" "R-2.2.0"
>> "R-2.15.3" "R-2.15.2" "R-2.15.1" "R-2.15.0" "R-2.14.2" "R-2.14.1" "R-2.14.0"
>> "R-2.13.2" "R-2.13.1" "R-2.13.0" "R-2.12.2" "R-2.12.1" "R-2.12.0" "R-2.11.1"
>> "R-2.11.0" "R-2.10.1" "R-2.10.0" "R-2.1.1" "R-2.1.0" "R-2.0.1" "R-2.0.0" ....
>> "R-3.1.1" "R-3.1.0" "R-3.0.3" "R-3.0.2" "R-32norm" "R-3.0.1" "R-3.0.0"
>> "R-devel-valgrind-lev2" "R-devel-no-ldouble" "R-devel"
>> ....
>> )
>>
>> Yes, all these are in my PATH (typically almost all the above via symbolic
>> links into a /usr/local/bin/ PATH) when I start emacs.
>>
>> Using symbolic links into a directory which is definitely on
>> your PATH allows you to have many different versions of R
>> available within the same emacs ESS session.
>>
>> But it remains a riddle via /usr/bin does not seem to be part
>> of your PATH ... or more likely not part of your emacs
>> exec-path. That's why Vitalie has asked about those.
>>
>> In short, please report (from Emacs)
>>
>> C-h v exec-path
>>
>> and (from a shell / terminal -- try both M-x shell from inside
>> Emacs, and a shell / simple terminal outside emacs) :
>>
>> echo $PATH
>>
>>
>> Martin
>>
>>
>> > Le 09/10/14, Rmh <rmh at temple.edu> a �crit :
>> >> did you restart emacs after the installation so its information would be refreshed?
>> >>
>> >> Rich
>> >>
>> >> Sent from my iPhone
>> >>
>> >> > On Oct 9, 2014, at 12:26, "G�rald Jean" <gerald.jean at videotron.ca> wrote:
>> >> >
>> >> > Thanks Ista,
>> >> >
>> >> > it worked just fine. What surprises me though is that until yesterday,
>> >> > before 3.1.1 was installed by admin, I didn't have any special statement
>> >> > in my .emacs for the system's version of R, the previous one being
>> >> > 2.15.?
>> >> >
>> >> > G�rald
>> >> >
>> >> > Le 09/10/14, Ista Zahn <istazahn at gmail.com> a �crit :
>> >> >> I think you can set inferior-R-program-name, e.g.,
>> >> >>
>> >> >> (setq inferior-R-program-name "/usr/bin/R")
>> >> >>
>> >> >> However, I don't see that documented in the manual[1], and it seems to
>> >> >> be a FAQ. Should this be documented, or is there another recommended
>> >> >> way to do it?
>> >> >>
>> >> >> Best,
>> >> >> Ista
>> >> >>
>> >> >> [1] http://ess.r-project.org/Manual/ess.html#Latest-version> >> >>
>> >> >>> On Thu, Oct 9, 2014 at 11:27 AM, "G�rald Jean" <gerald.jean at videotron.ca> wrote:
>> >> >>> Hello,
>> >> >>>
>> >> >>> I am running R from ESS on a linux box (RedHat). The admin of the server just installed R-3.1.1 in /usr/bin and I can't start it from Emacs, starts OK from the command line just by typing R.
>> >> >>>
>> >> >>> I also have a patched version (3.1.0) installed in a private directory. From Emacs, "M-x R", "M-x R-patched" and "M-x R-newest" all start the R-3.1.0 patched version???
>> >> >>>
>> >> >>> I also have TERR and Revo64 from RevolutionAnalytics installed in a private directory, I can start any of them from Emacs but not the R-3.1.1, installed in the standard /usr/bin location???
>> >> >>>
>> >> >>> Any ideas???
>> >> >>>
>> >> >>> Thanks for your support,
>> >> >>>
>> >> >>> G�rald Jean
>>
>>
> [[alternative HTML version deleted]]
> ______________________________________________
> ESS-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help
More information about the ESS-help
mailing list