Sometimes we need to use special versions of R (e.g. the latest version of R is not available in the repositories of the machine we need to use). This post describes a simple way of compiling R from sources and using it in RStudio or on servers without X.
Get latest R source
Get the source of your desired R version from https://www.r-project.org/. You want to obtain a file named R.x.y.z.tar from there and untar it using tar -xf R-x.y.z.tar.gz. Change into the untar-ed folder then.
More details on this are available at https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Getting-and-unpacking-the-sources
Build R from source for RStudio
Built R using the following commands. Be aware that there are a number of prerequisites to this compilation, like having gcc and g++ installed.
./configure --enable-R-shlib make make check make check-all
Passing the checks creates the R and Rscript frontends in ./bin/ — those are what you most likely need. You can call these directly, link to them, or use them in RStudio (see below). If you forgot to add the –enable-R-shlib parameter to configure you need to delete and re-extract the tar before redoing the process — otherwise make will fail.
More details on this are available at https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Simple-compilation
Define the R to use with RStudio
RStudio uses the R defined by which R. Hence we can add the following to the ~/.profile file to define which R is used by RStudio:
# export RSTUDIO_WHICH_R=/path/to/your/R # this is what RStudio usually uses export RSTUDIO_WHICH_R=/usr/local/bin/R # this is what we use . ~/.profile # reloads the profile without requiring us to logout+login again
More details on this are available at https://support.rstudio.com/hc/en-us/articles/200486138-Using-Different-Versions-of-R
Build R for environments without X/without Java
Do the same steps as above, but use this configure instead:
./configure --with-x=no --disable-java
More details on this are available at https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Essential-programs-and-libraries
Hint for “package not available for R version x.z.y…” errors
If package installations fail because your repositories don’t contain the required SW, try the Berkeley mirror: from our experience, they host lots of packages in many versions. For example:
install.packages("ggplot2", repos="http://cran.cnr.berkeley.edu")
Alternatively, the URL to the source archive can be specified directly:
packageurl <- "http://cran.r-project.org/src/contrib/Archive/XXXX/XXXX_A.B.C.tar.gz" install.packages(packageurl, contriburl=NULL, type="source")
More details on this are available at http://stackoverflow.com/questions/17998543/what-to-do-when-a-package-is-not-available-for-our-r-version
Yet another option is to use devtools to fetch code e.g. directly from GitHub:
devtools::install_github("hadley/lineprof")
More details on this example can be found at http://adv-r.had.co.nz/Profiling.html
