Install R from Source#
These instructions describe how to install R from source on a Linux server.
Note
We recommend installing R from precompiled binaries
unless you need to customize how R is configured — for example,
installing R at a different location than /opt/R
.
These instructions are meant to install a minimal version of R without many of the additional features enabled in the precompiled binaries, such as automatic configuration of a faster BLAS library.
If you want to install R with the same features as the precompiled binaries but change where R is installed, you can build R from source using the rstudio/r-builds repository on GitHub instead.
Install required dependencies#
- First follow the steps to enable the required and optional repositories, as listed from the Install R page.
-
Next, install the build dependencies for R:
$ sudo dnf builddep R
$ sudo yum-builddep R
$ sudo sed -i.bak "/^#.*deb-src.*universe$/s/^# //g" /etc/apt/sources.list $ sudo apt update $ sudo apt build-dep r-base
$ sudo zypper install \ gcc \ gcc-c++ \ gcc-fortran \ glibc-locale \ java-11-openjdk-devel \ libcurl-devel \ make \ pcre-devel \ pcre2-devel \ readline-devel \ xorg-x11-devel \ xz-devel
Specify R version#
Consult with your R user group to determine which version(s) of R they would like installed. Once defined, set the environment variable, shown below, to the first R version they request.
If multiple versions of R are requested, follow the remaining steps and repeat them for each R version.
$ export R_VERSION=4.1.3
Available versions of R
Versions of R that are available include:
4.2.3, 4.2.2, 4.2.1, 4.2.0, 4.1.3, 4.1.2, 4.1.1, 4.1.0, 4.0.5, 4.0.4, 4.0.3, 4.0.2, 4.0.1, 4.0.0
3.6.3, 3.6.2, 3.6.1, 3.6.0, 3.5.3, 3.5.2, 3.5.1, 3.5.0, 3.4.4, 3.4.3, 3.4.2, 3.4.1, 3.4.0, 3.3.3, 3.3.2, 3.3.1, 3.3.0
If you need to use an earlier version of R, then you will need to modify the export command shown above:
$ export R_VERSION=3.X.X
Please see the cran.r-project index for all available versions of R.
Download and extract R#
Download and extract the version of R that you want to install:
$ curl -O https://cran.rstudio.com/src/base/R-4/R-${R_VERSION}.tar.gz
$ tar -xzvf R-${R_VERSION}.tar.gz
$ cd R-${R_VERSION}
$ curl -O https://cran.rstudio.com/src/base/R-3/R-${R_VERSION}.tar.gz
$ tar -xzvf R-${R_VERSION}.tar.gz
$ cd R-${R_VERSION}
Build and install R#
Build and install R by running the following commands:
$ ./configure \
--prefix=/opt/R/${R_VERSION} \
--enable-R-shlib \
--enable-memory-profiling
$ make
$ sudo make install
$ ./configure \
--prefix=/opt/R/${R_VERSION} \
--enable-R-shlib \
--enable-memory-profiling \
--with-blas \
--with-lapack
$ make
$ sudo make install
$ ./configure \
--prefix=/opt/R/${R_VERSION} \
--enable-R-shlib \
--enable-memory-profiling
$ make
$ sudo make install
Configuration options#
Option | Description |
---|---|
--prefix |
Specifies the directory where R is installed when executing make install . Change this to install R at a different location than /opt/R/${R_VERSION} . |
--enable-R-shlib |
Required to use R with RStudio. |
--enable-memory-profiling |
Enables support for Rprofmem() and tracemem() , used to measure memory use in R code. |
--with-blas , --with-lapack |
Configures R to link against external BLAS and LAPACK libraries on the system. Recommended only on Ubuntu/Debian, where the alternatives system may be used to switch the BLAS library at runtime. If unspecified, R uses an internal BLAS library that can be switched at runtime. See Configure R to use a different BLAS library for more details. |
For a full list of configuration options, refer to the Configuration options section of the R administration manual.
Verify R installation#
Test that R was successfully installed by running:
$ /opt/R/${R_VERSION}/bin/R --version
Create a symlink to R#
To ensure that R is available on the default system PATH
variable, create
symbolic links to the version of R that you installed:
$ sudo ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
$ sudo ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript
(Optional) Configure R to use a different BLAS library#
We recommend configuring R to use a different BLAS library, such as OpenBLAS, to speed up linear algebra operations. By default, R is configured to use the reference BLAS library, but this may be switched after installing R.
-
On Ubuntu/Debian, the BLAS library can be switched using the alternatives system. For example, to switch to OpenBLAS on Ubuntu 22, install the OpenBLAS package and run the
update-alternatives
command to change the default BLAS library:Terminal$ sudo apt install libopenblas-dev $ sudo update-alternatives --config libblas.so.3-$(arch)-linux-gnu
-
On RHEL/CentOS and SUSE Linux, the BLAS library can be switched by replacing R's internal shared BLAS library, located at
R_HOME/lib/libRblas.so
, with a symbolic link to a different library. For example, to switch to OpenBLAS on RHEL 9, install OpenBLAS, create a backup ofR_HOME/lib/libRblas.so
, and create a symlink to OpenBLAS atR_HOME/lib/libRblas.so
:Terminal$ sudo dnf install openblas-devel $ sudo mv $(R RHOME)/lib/libRblas.so $(R RHOME)/lib/libRblas.so.keep $ sudo ln -s /usr/lib64/libopenblasp.so $(R RHOME)/lib/libRblas.so
For more information on configuring the BLAS library in R, refer to the BLAS section of the R administration manual.
(Optional) Install recommended packages#
We recommend installing several optional system dependencies that are used by common R packages. Additional information about installing them is provided in our System Dependency Detection documentation.
(Optional) Install multiple versions of R#
If you want to install multiple versions of R on the same server, you can repeat these steps to specify, download, and install a different version of R alongside existing versions.