Cron Acronis
2016-Feb-10 15:50 UTC
[R-sig-Debian] Change Rscript and `/usr/lib/R/bin/R` relation
Dear all,
I am trying to use multiple version of R unpacked from CRAN deb files.
It does work successfully, except for some packages installation, whether
Rscript has been used. I have configured alternatives and switch R
environments without any problem and can install most of the packages.
'=====================================================$ update-alternatives
--display R
R - auto mode
link currently points to /opt/R/3.2.3/usr/lib/R/bin/R
/opt/R/3.2.3/usr/lib/R/bin/R - priority 200
/usr/lib/R/bin/R - priority 100
Current 'best' version is '/opt/R/3.2.3/usr/lib/R/bin/R'.
$ update-alternatives --display Rscript
Rscript - auto mode
link currently points to /opt/R/3.2.3/usr/lib/R/bin/Rscript
/opt/R/3.2.3/usr/lib/R/bin/Rscript - priority 200
/usr/lib/R/bin/Rscript - priority 100
Current 'best' version is '/opt/R/3.2.3/usr/lib/R/bin/Rscript'.
'=====================================================
Rscript always invokes `/usr/lib/R/bin/R`, but my alternatives are
configured against `/usr/bin/R`
'=====================================================$ Rscript --verbose -e
'Sys.getenv("R_HOME")'
running
'/usr/lib/R/bin/R --slave --no-restore -e
Sys.getenv("R_HOME")'
[1] "/usr/lib/R"
'=====================================================
As have been mentioned by Dirk Eddelbuettel, in order to make Rscript
invoke correct R, I can adjust `PATH` environment variable.
Which was done, but in my case didn't work out. Rscript still calls `/usr/
lib/R/bin/R`
'=====================================================$ env | grep PATH
PATH=/opt/R/3.2.3/usr/lib/R/bin:/opt/python/conda/bin::/usr/local/sbin:/
usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ Rscript --version && Rscript --verbose -e
'print("Hello")'
R scripting front-end version 3.2.3 (2015-12-10)
running
'/usr/lib/R/bin/R --slave --no-restore -e
print("Hello")'
[1] "Hello"
'=====================================================
Could you please advise where I should dig further in order to force
Rscript to use `/usr/bin/R` or `/opt/R/3.2.3/usr/lib/R/bin/R`?
Regards, Cron Acronis.
Dirk Eddelbuettel
2016-Feb-10 16:18 UTC
[R-sig-Debian] Change Rscript and `/usr/lib/R/bin/R` relation
Thanks for bringing the question over from StackOverflow [1]. I am not very
impressed that you STILL hide behind a pseudonym and I am starting to
question my sanity as to why I take time out to help someone like
that. Anyway, read on ...
[1] http://stackoverflow.com/questions/35313704/rscript-launch-custom-r/
On 10 February 2016 at 15:50, Cron Acronis wrote:
| Dear all,
|
| I am trying to use multiple version of R unpacked from CRAN deb files.
That will not work "as is". They have their path baked in.
You could expand them into a Docker container each, and invoke those.
You _could_ try re-setting RHOME, R_HOME, ... But rest assured that you
attempt to deploy R in a way NOT foreseen or designed by the authors.
| It does work successfully, except for some packages installation, whether
| Rscript has been used. I have configured alternatives and switch R
| environments without any problem and can install most of the packages.
|
| '=====================================================| $
update-alternatives --display R
| R - auto mode
| link currently points to /opt/R/3.2.3/usr/lib/R/bin/R
| /opt/R/3.2.3/usr/lib/R/bin/R - priority 200
| /usr/lib/R/bin/R - priority 100
| Current 'best' version is '/opt/R/3.2.3/usr/lib/R/bin/R'.
|
|
| $ update-alternatives --display Rscript
| Rscript - auto mode
| link currently points to /opt/R/3.2.3/usr/lib/R/bin/Rscript
| /opt/R/3.2.3/usr/lib/R/bin/Rscript - priority 200
| /usr/lib/R/bin/Rscript - priority 100
| Current 'best' version is
'/opt/R/3.2.3/usr/lib/R/bin/Rscript'.
| '=====================================================|
| Rscript always invokes `/usr/lib/R/bin/R`, but my alternatives are
| configured against `/usr/bin/R`
|
| '=====================================================| $ Rscript
--verbose -e 'Sys.getenv("R_HOME")'
| running
| '/usr/lib/R/bin/R --slave --no-restore -e
Sys.getenv("R_HOME")'
|
| [1] "/usr/lib/R"
| '=====================================================|
| As have been mentioned by Dirk Eddelbuettel, in order to make Rscript
| invoke correct R, I can adjust `PATH` environment variable.
That presumed a local build into the location where PATH finds it. That is
how some R Core members use different versions, and that approach 'was good
enough for me' too. You are overcomplicating things here and get to pick
up
the pieces.
| Which was done, but in my case didn't work out. Rscript still calls `/usr/
| lib/R/bin/R`
|
| '=====================================================| $ env | grep PATH
| PATH=/opt/R/3.2.3/usr/lib/R/bin:/opt/python/conda/bin::/usr/local/sbin:/
| usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
|
|
| $ Rscript --version && Rscript --verbose -e
'print("Hello")'
| R scripting front-end version 3.2.3 (2015-12-10)
| running
| '/usr/lib/R/bin/R --slave --no-restore -e
print("Hello")'
|
| [1] "Hello"
| '=====================================================|
|
| Could you please advise where I should dig further in order to force
| Rscript to use `/usr/bin/R` or `/opt/R/3.2.3/usr/lib/R/bin/R`?
Build from source into the chosen location.
| Regards, Cron Acronis.
In the future, use a real name if you want real help from real people.
Dirk
| _______________________________________________
| R-SIG-Debian mailing list
| R-SIG-Debian at r-project.org
| https://stat.ethz.ch/mailman/listinfo/r-sig-debian
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
Alexey Zaharov
2016-Feb-12 15:11 UTC
[R-sig-Debian] Change Rscript and `/usr/lib/R/bin/R` relation
On Wed, 10 Feb 2016 10:18:51 -0600, Dirk Eddelbuettel wrote:> Thanks for bringing the question over from StackOverflow [1]. I am not > very impressed that you STILL hide behind a pseudonym and I am starting > to question my sanity as to why I take time out to help someone like > that. Anyway, read on ... > > [1] http://stackoverflow.com/questions/35313704/rscript-launch-custom-r/ > > On 10 February 2016 at 15:50, Cron Acronis wrote: > | Dear all, > | > | I am trying to use multiple version of R unpacked from CRAN deb files. > > That will not work "as is". They have their path baked in. > > You could expand them into a Docker container each, and invoke those. > > You _could_ try re-setting RHOME, R_HOME, ... But rest assured that > you attempt to deploy R in a way NOT foreseen or designed by the > authors. > > | It does work successfully, except for some packages installation, > whether | Rscript has been used. I have configured alternatives and > switch R | environments without any problem and can install most of the > packages. > | > | '=====================================================> | $ update-alternatives --display R | R - auto mode | link currently > points to /opt/R/3.2.3/usr/lib/R/bin/R | /opt/R/3.2.3/usr/lib/R/bin/R - > priority 200 | /usr/lib/R/bin/R - priority 100 | Current 'best' version > is '/opt/R/3.2.3/usr/lib/R/bin/R'. > | > | > | $ update-alternatives --display Rscript | Rscript - auto mode | link > currently points to /opt/R/3.2.3/usr/lib/R/bin/Rscript | > /opt/R/3.2.3/usr/lib/R/bin/Rscript - priority 200 | > /usr/lib/R/bin/Rscript - priority 100 | Current 'best' version is > '/opt/R/3.2.3/usr/lib/R/bin/Rscript'. > | '=====================================================> | > | Rscript always invokes `/usr/lib/R/bin/R`, but my alternatives are | > configured against `/usr/bin/R` > | > | '=====================================================> | $ Rscript --verbose -e 'Sys.getenv("R_HOME")' > | running | '/usr/lib/R/bin/R --slave --no-restore -e > Sys.getenv("R_HOME")' > | > | [1] "/usr/lib/R" > | '=====================================================> | > | As have been mentioned by Dirk Eddelbuettel, in order to make Rscript > | invoke correct R, I can adjust `PATH` environment variable. > > That presumed a local build into the location where PATH finds it. That > is how some R Core members use different versions, and that approach > 'was good enough for me' too. You are overcomplicating things here and > get to pick up the pieces. > > | Which was done, but in my case didn't work out. Rscript still calls > `/usr/ | lib/R/bin/R` > | > | '=====================================================> | $ env | grep PATH | > PATH=/opt/R/3.2.3/usr/lib/R/bin:/opt/python/conda/bin::/usr/local/sbin:/ > | > usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games > | > | > | $ Rscript --version && Rscript --verbose -e 'print("Hello")' > | R scripting front-end version 3.2.3 (2015-12-10) > | running | '/usr/lib/R/bin/R --slave --no-restore -e > print("Hello")' > | > | [1] "Hello" > | '=====================================================> | > | > | Could you please advise where I should dig further in order to force | > Rscript to use `/usr/bin/R` or `/opt/R/3.2.3/usr/lib/R/bin/R`? > > Build from source into the chosen location. > > | Regards, Cron Acronis. > > In the future, use a real name if you want real help from real people. > > Dirk >Dear Dirk, Probably you would like to know, that I have managed to solve the problem by using `schroot`. It can attach current user `home` folder to `rootfs` from `chroot` where. After I have configured the `trusty64`, I have just created a clone. Inside the clone I have installed another version of R from CRAN repo. <--------------------------------START-------------> root at chroot-test:/# schroot -l chroot:trusty64 chroot:trusty64_clone $ cat /etc/schroot/chroot.d/trusty64.conf [trusty64] description=Ubuntu 14.04 Trusty Tahr directory=/test/schroot/trusty64 users=quant type=directory profile=desktop #personality=linux preserve-environment=true root-groups=root $ cat /etc/schroot/chroot.d/trusty64_clone.conf [trusty64_clone] description=Ubuntu 14.04 Trusty Tahr directory=/test/schroot/trusty64 users=quant type=directory profile=desktop #personality=linux preserve-environment=true root-groups=root root at chroot-test:/etc# debootstrap --variant=minbase --arch amd64 trusty / test/schroot/trusty64/ http://archive.ubuntu.com/ubuntu/ root at chroot-test:/etc# schroot -c trusty64 -u quant root at chroot-test:/etc# schroot -c trusty64_clone -u quant <--------------------------------END---------------> -- Regards. Alexey.