Installing R
Package for the current R 4.4. release* are available for most stable Desktop releases of Ubuntu until their official end of life date. However, only the latest Long Term Support (LTS) release is fully supported. As of May 1, 2024 the supported releases are
- Noble Numbat (24.04, amd64 only),
- Jammy Jellyfish (22.04, amd64 only),
- Focal Fossa (20.04; LTS and amd64 only),
- Bionic Beaver (18.04; LTS), and
- Xenial Xerus (16.04; LTS).
Note that in order to install R 4.4 packages, a new and
different sources.list
entry is needed. See below for
details.
For older R releases, see the corresponding README.
Additional CRAN Packages
For additional binary packages for R (currently well over 4,000+), check out the different CRAN2deb4ubuntu PPAs. For R 4.4.*, this is https://launchpad.net/~c2d4u.team/+archive/ubuntu/c2d4u4.0+
The ‘c2d4u’ repository is only available for LTS releases. If you wish to attempt to use the repository with an non-LTS release, you can manually edit the ’c2d4u_team-ubuntu-c2d4u4_0_-*.list’ to use focal instead of the intended release. This usage of the ‘c2d4u’ repository is unsupported. An LTS release is strongly suggested for utilizing the ‘c2d4u’ repository.
Installation
To obtain the latest R 4.4 packages, add an entry like
deb https://cloud.r-project.org/bin/linux/ubuntu noble-cran40/
or
deb https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/
or
deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/
or
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/
or
deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran40/
in your /etc/apt/sources.list file. By using https://cloud.r-project.org, you will be automatically be redirected to a nearby CRAN mirror. See https://cran.r-project.org/mirrors.html for the current list of CRAN mirrors.
To install the complete R system, use
sudo apt-get update
sudo apt-get install r-base
Users who need to compile R packages from source [e.g. package maintainers, or anyone installing packages with install.packages()] should also install the r-base-dev package:
sudo apt-get install r-base-dev
The R packages for Ubuntu otherwise behave like the Debian ones. One may find additional information in the Debian README file located at https://cran.R-project.org/bin/linux/debian/.
Installation and compilation of R or some of its packages may require Ubuntu packages from the “backports” repositories. Therefore, it is suggested to activate the backports repositories with an entry like
deb https://<my.favorite.ubuntu.mirror>/ focal-backports main restricted universe
in your /etc/apt/sources.list file. See https://launchpad.net/ubuntu/+archivemirrors for the list of Ubuntu mirrors.
Users of Mint and other derivatives of Ubuntu
When creating an entry for apt, you must use the Ubuntu release name your distribution is based on. For example, do not use “uma”, instead use “focal.”
Supported Packages
A number of R packages are available from the Ubuntu repositories with names starting with r-cran-. The following ones are kept up-to-date on CRAN: all packages part of the r-recommended bundle, namely
- r-cran-boot
- r-cran-class
- r-cran-cluster
- r-cran-codetools
- r-cran-foreign
- r-cran-kernsmooth
- r-cran-lattice
- r-cran-mass
- r-cran-matrix
- r-cran-mgcv
- r-cran-nlme
- r-cran-nnet
- r-cran-rpart
- r-cran-spatial
- r-cran-survival
as well as
- r-cran-rodbc
The other r-cran-* packages are updated with Ubuntu releases only. Users who need to update one of these R packages (say r-cran-foo) should first make sure to obtain all the required build dependencies with
sudo apt-get build-dep r-cran-foo
Because they rely on the installed version of R, we also provide, on an experimental basis, versions of the following packages as up-to-date as the Ubuntu release allows:
- littler
- python-rpy2
- jags
Please notice that the maintainers are not necessarily themselves users of these packages, so positive or negative feedback through the usual channels (see below) would be appreciated.
Finally, as an added convenience to Ubuntu users who interact with R through Emacs, we also provide an up-to-date version of the package
- ess
Secure APT
With the deprecation of apt-key, the recommended method for adding the key is:
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
To verify the key:
gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
The fingerprint should be E298A3A825C0D65DFD57CBB651716619E084DAB9.
Using apt-key
NOTE: There was an issue with a second key found on the Ubuntu keyserver. Details and how to remove can be found at http://rubuntu.netlify.com/post/changes-to-cran-ubuntu-webpage-regarding-apt-secure-key/.
The Ubuntu archives on CRAN are signed with the key of “Michael Rutter marutter@gmail.com” with key ID 0x51716619e084dab9. To add the key to your system with one command use (thanks to Brett Presnell for the tip):
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
An alternate method can be used by retrieving the key with
gpg --keyserver keyserver.ubuntu.com --recv-key E298A3A825C0D65DFD57CBB651716619E084DAB9
and then feed it to apt-key with
gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
Some people have reported difficulties using this approach. The issue is usually related to a firewall blocking port 11371. If the first gpg command fails, you may want to try (thanks to Mischan Toosarani for the tip):
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
and then feed it to apt-key with
gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
Another alternative approach is to search for the key at http://keyserver.ubuntu.com:11371/ and copy the key to a plain text file, say key.txt. Then, feed the key to apt-key with
sudo apt-key add key.txt
Maintenance of R Packages
The R packages part of the Ubuntu r-base and r-recommended packages are installed into the directory /usr/lib/R/library. These can be updated using apt-get with
sudo apt-get update
sudo apt-get upgrade
The other r-cran-* packages shipped with Ubuntu are installed into the directory /usr/lib/R/site-library.
Installing R packages not provided with Ubuntu first requires tools to compile the packages from source. These tools are installed via the R development package with
sudo apt-get install r-base-dev
This pulls in the basic requirements for compiling R packages. R packages may then be installed by the local user/admin from the CRAN source packages, typically from inside R using the
> install.packages()
function or using
R CMD INSTALL
from a shell. If you have proper write permissions in /usr/local/lib/R/site-library/, and you have not set R_LIBS_USER manually, they will be installed there. Otherwise, you will be asked if a directory in your home directory should be created for these packages. A routine update of such locally compiled packages can be done using
> update.packages(.libPaths()[1])
which will update the packages in the first part of your library path. You can have a look at the components of this path by
> .libPaths()
If you would like to update R packages that have been installed via the Ubuntu package management system which are installed somewhere under /usr/lib/, I would recommend to do this the Ubuntu way using the source packages from the latest version of Ubuntu or use my PPA cran2deb4ubuntu - https://launchpad.net/~c2d4u.team/+archive/ubuntu/c2d4u4.0+.
Pathways to R Packages
In order to find packages, R looks at the variables R_LIBS_USER and R_LIBS_SITE. On Debian and Ubuntu, R_LIBS_USER is set in /etc/R/Renviron to
R_LIBS_USER=${R_LIBS_USER-'~/R/$platform-library/4.4'}
where $platform is something like ‘x86_64-pc-linux-gnu’ and depending on the version of R installed. You can override this in your ~/.Renviron. R_LIBS_SITE is set in /etc/R/Renviron to
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'}
This means that packages installed from within R take precedence over the ones installed via the Ubuntu package management system if you happen to have two versions installed at the same time.
Reporting Problems
The best place to report problems with these packages or ask R questions specific to Ubuntu is the R-SIG-Debian mailing list. See
https://stat.ethz.ch/mailman/listinfo/r-sig-debian
for more information.
Acknowledgements
The Debian R packages are maintained by Dirk Eddelbuettel. The Ubuntu packages are compiled for i386 and amd64 by Michael Rutter (marutter@gmail.com) using scripts developed by Vincent Goulet.