This is the recipe I use to upgrade R on a Linux box. It’s something that I do fairly frequently on fresh EC2 instances.
Remove Old R
Check for existing R and packages.
dpkg -l | grep -E "(r-base-core|cran)"
Remove existing R installation.
sudo apt-get purge -y r-base-core
Check again for exsiting R packages: they should be gone.
Add Keys
Add keys.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
If you’re behind a firewall you can try something like this:
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-key E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add --
Add CRAN Repository
OSNAME=$(. /etc/os-release; echo "$ID")
OSVERS=$(lsb_release -cs)
sudo add-apt-repository "deb http://cran.rstudio.com/bin/linux/$OSNAME $OSVERS-cran40/"
Update the package list.
sudo apt-get -y update
Install New R
sudo apt-get -y install r-base
If you want to remove the packages installed in the process then you can do this:
sudo apt-get remove -y 'r-cran-.*'
Other Stuff
Install some system packages that are required for building various R packages.
sudo apt-get -y install \
htop \
libcurl4-openssl-dev \
libssl-dev \
libgeos-dev \
libgdal-dev \
libproj-dev \
libxml2-dev \
libudunits2-dev \
libsodium-dev \
pandoc \
openjdk-8-jdk \
openjdk-8-jre \
cargo \
libcairo2-dev \
libfreetype6-dev \
libclang-dev \
ttf-mscorefonts-installer \
fonts-roboto
Configuring Java
Where does R expect to find Java?
sudo R CMD javareconf