Installation de R 4.0 sur Ubuntu 20.04 LTS et astuces pour les packages de cartographie

migration-to-r4.0-in-ubuntu-20.04-header
Author : Sébastien Rochette
Tags : ubuntu, cartographie, serveur
Date :

Vous prévoyez de mettre à niveau votre installation serveur d’Ubuntu 18.04 vers Ubuntu 20.04 LTS ? C’est aussi le meilleur moment pour migrer vers R 4.0 ! Par ailleurs, si vous trouvez toujours difficile d’installer des packages R pour les données géographiques sur Ubuntu, c’est fini ! Suivez le guide…

La dernière fois que vous avez lu ce genre de tutoriel sur notre blog, c’était pour migrer vers Ubuntu 18.04 et R 3.5. Cet article de blog a eu du succès, je vais donc reprendre exactement la même structure. Notez que j’écris ce guide tout en mettant moi-même à niveau mon propre ordinateur portable de travail. Il y a intérêt à ce que ça fonctionne correctement !
Notez que chez moi, en suivant ces opérations, R4.0 et les packages de carto sont pleinement fonctionnels.
Par ailleurs, tout est proposé en lignes de commande, ce qui signifie que vous pouvez utiliser ce tutoriel pour mettre à jour un serveur sans interface graphique, pour construire vos conteneurs Docker ou pour mettre en place l’intégration continue de vos créations de packages.

Il y a eu beaucoup de changements ces deux dernières années dans les communautés Ubuntu et R. La migration vers R 4.0 va changer pas mal de choses ! Profitez-en !

Nouvelle version Ubuntu et nouvelle version de R

ubuntu-with-r

Si vous utilisez Ubuntu sur votre ordinateur portable ou sur vos serveurs dans votre entreprise, il y a de fortes chances que vous utilisiez une version LTS (Long Term Support). L’utilisation d’une version LTS est plus sûre pour les entreprises ayant des contraintes de stabilité. Cela permet d’éviter d’éventuels changements bloquants qui compromettraient vos travaux et donc votre activité. La première version d’Ubuntu 20.04 Focal Fossa pour serveur ou ordinateur de bureau est disponible en téléchargement. Si vous utilisez toujours Ubuntu 18.04, cette mise à jour peut vous être proposée.

Au cours des derniers mois, vous avez également entendu parler de la sortie de la version R 4.0 annoncée par l’équipe « R Core Team ». Alors ? Ça vous tente ?

Mise à niveau vers Ubuntu 20.04

ubuntu-logo

Comme toujours, assurez-vous d’avoir des sauvegardes de vos fichiers avant de commencer la migration !
Notez que les mises à jour depuis la version 18.04 LTS seront proposées quelques jours après la version 20.04.1 prévue pour la fin juillet 2020. Il peut être plus sûr d’attendre cette version avant de mettre à niveau une machine en production.
Si vous avez des problèmes avec « Rstudio Desktop » sur votre écran haute résolution (HiDPI) avec Ubuntu 20.04, vous pouvez aller voir cette issue.

Vous êtes vraiment prêts à y aller ? Allons-y alors !

D’abord, assurez-vous que le gestionnaire de mise à niveau est installé :

sudo apt install update-manager-core

Vous aurez besoin d’être sûrs que votre système est à jour.

sudo apt upgrade
sudo apt dist-upgrade

Vous pouvez aussi faire un petit nettoyage.

sudo apt autoremove

Ensuite faisons cette mise à niveau vers Ubuntu 20.04 Focal Fossa !

sudo do-release-upgrade

Cela devrait fonctionner si vous n’avez autorisé l’installation que des versions LTS. Dans mon cas, j’ai récemment effectué une mise à niveau vers la version Ubuntu 19.10 pour certains tests et je n’ai peut-être pas été assez patient, mais la nouvelle version ne m’a pas été proposée (le 2020-05-01). Vous pouvez temporairement autoriser la version « normale », qui, ici, vous proposera la dernière version disponible 20.04. Celle que nous voulons. Attention à ce changement. Si vous utilisez votre ordinateur en production, remettez-le à « lts » dès que vous avez installé le LTS. Cependant, pour un serveur en production, je vous recommande d’attendre la version 20.04.1, fin juillet 2020.

Vérifiez /etc/update-manager/release-upgrades et changez la ligne :

Prompt=lts

par :

Prompt=normal

Ensuite, vous pouvez lancer sudo do-release-upgrade

Ici, comme je n’ai pas été pas assez patient et parce que les mises à jour de la version 19.10 sont activées quelques jours après la sortie de la version 20.04, l’exécution de la commande m’a conduit à « Aucune nouvelle version trouvée » (Le 2020-05-01). A mes propres risques et périls, j’ai décidé de forcer la sortie en utilisant sudo do-release-upgrade -d.

Suivez les instructions et c’est fini pour la mise à jour Ubuntu.

Supprimer la version précédente de R

Supprimer les dépôts supplémentaires

ubuntu-with-rPour pouvoir utiliser la version R 4.0, vous devrez supprimer tout ce qui existe de la version R précédente.

Nous devons d’abord vérifier si vous avez déjà utilisé l’un des serveurs miroirs de R. Ptet ben qu’oui, ptet ben qu’non… Le serveur miroir de R sera l’un de ceux-là : https://cran.r-project.org/mirrors.html. Ce nom de serveur peut être listé dans le fichier “/etc/apt/sources.list”, que vous pouvez éditer ainsi :

Dans le terminal:

sudo vi /etc/apt/sources.list

Trouvez la ou les lignes qui ressemblent à deb https://mirror.ibcp.fr/pub/CRAN/ bionic/ et commentez les avec #. Par ailleurs, si vous aviez suivi notre article de migration vers Ubuntu 18.04 et R 3.5, vous avez probablement ajouté le mirroir principal du CRAN deb https://cloud.r-project.org/bin/linux/ubuntu ainsi que le PPA de Michael Rutter qui ressemble à deb http://ppa.launchpad.net/marutter/c2d4u3.5/ubuntu bionic main. Commentez aussi ces lignes avec #.

Si vous n’avez pas trouvé ces lignes, le serveur peut être dans un fichier externe listé dans “/etc/apt/sources.list.d”. Trouvez le “nom.du.fichier.avec.un.nom.de.mirroir” (remplacez ce chemin par le chemin approprié) et supprimez les fichiers.

Dans le terminal:

ls /etc/apt/sources.list.d
sudo rm -i /etc/apt/sources.list.d/name.of.file.for.mirror.list

Si vous ne l’avez pas trouvé, vous avez probablement installé R en utilisant les serveurs par défaut d’Ubuntu. Dans ce cas, vous n’avez rien d’autre à faire.

Supprimer les paquets Ubuntu pour R

Maintenant vous devez supprimer tous les paquets Ubuntu pour R et nettoyer votre installation.

Dans le terminal:

sudo apt-get purge r-base* r-recommended r-cran-*
sudo apt autoremove
sudo apt update

Notez que l’utilisation de * pour la correspondance partielle, nécessite l’utilisation de apt-get, au lieu de apt.

R devrait être totalement effacé.

Installer la nouvelle version de R (4.0)

Définir les nouveaux dépôts Ubuntu pour R 4.0

ubuntu-with-r

Vous trouverez des instructions d’installation détaillées sur https://cran.r-project.org/bin/linux/ubuntu/. Grâce à Dirk Eddelbuettel et Michael Rutter, installer R sur Ubuntu est un jeu d’enfant !
Nous utiliserons le nouveau miroir https://cloud.r-project.org, qui sera automatiquement redirigé vers le miroir CRAN le plus proche de chez vous.

Dans le terminal:

sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'

Vous aurez sûrement besoin des clés :

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo apt update

En cas de problème avec la clé, vous pouvez essayer cette méthode alternative :

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

puis la configurer avec :

gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -

Installer R 4.0

Très peu de paquets deb sont nécessaires.

Dans le terminal:

sudo apt install r-base r-base-core r-recommended r-base-dev

Installer d’autres paquets binaires avec Ubuntu

A titre personnel, j’ai quelques packages R installés avec un PPA (Personal Package Archives) Ubuntu car je fais confiance aux mainteneurs et je suis sûr que ces paquets R fonctionneront avec ma distribution Ubuntu. Ils nécessitent des dépendances Linux qui peuvent être compliquées à installer. C’est le cas des packages pour la cartographie ou de ceux nécessitant Java.
Avec R 4.0, les packages doivent être reconstruits différemment des versions précédentes. Comme pour les séries R3.5/3.6, Michael Rutter nous prépare une installation de binaires de vos packages R préférés prête à l’emploi. Ces binaires sont dans un PPA de la « cran2deb4ubuntu Build Team« . Plus d’explications sur ces binaires sont disponibles sur le blog de Michael : « R4.0 now available« . Vous devrez donc utiliser son PPA avant d’installer les paquets Ubuntu pour R (ceux commençant par « r-cran-« ). Notez que ce PPA est différent de celui des versions R3.5/3.6.

Dans le terminal:

sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+
sudo apt update

Voici ma propre sélection de paquets que vous ne voudrez peut-être pas construire par vous-même à partir des sources et laissez Michael le faire pour vous. À ce jour, tous les paquets ne sont pas disponibles (2020-05-01). Il reste encore beaucoup de travail à réaliser. Merci de laisser un peu de temps à Michael. Vous pouvez consulter la liste des paquets disponibles sur launchpad.

sudo apt install r-cran-rgl r-cran-rjags r-cran-snow r-cran-ggplot2 r-cran-igraph r-cran-lme4 r-cran-rjava r-cran-devtools r-cran-roxygen2 r-cran-rjava

Installer les packages pour l’analyse des données spatiales dans Ubuntu

ubuntu-carto-r

L’installation de packages R comme {sf}, {sp}, {rgdal}, {rgeos}, {raster} … peut nécessiter des paquets Ubuntu externes pour des logiciels comme PROJ, GDAL ou GEOS. Auparavant, les packages de cartographie R nécessitaient des versions de ces logiciels plus récentes que celles proposées par défaut par Ubuntu, d’où l’utilisation du PPA UbuntuGIS. Depuis Ubuntu 18.04, les versions par défaut des dépendances d’Ubuntu sont suffisamment à jour pour vos packages R.

Installez les paquets Ubuntu suivants pour permettre vos futures analyses des données spatiales dans R :

sudo apt install libgdal-dev libproj-dev libgeos-dev libudunits2-dev libnode-dev libcairo2-dev libnetcdf-dev

Si vous voulez jouer avec {rgl} et {rayshader}, vous aurez peut-être besoin des paquets suivants :

sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev

 

Il est recommandé d’installer le PPA UbuntuGIS pour pouvoir travailler avec les packages R d’analyses de données géographiques, en particulier pour tester les changements qui se produisent autour de PROJ (>= 6.0) et la gestion des projections dans {sf} et d’autres packages pour les données géographiques. Cependant, il semble que les versions des packages spatiaux publiées sous forme binaires par l’équipe de « cran2deb4ubuntu » ne soient pas construites avec le PPA « UbuntuGIS ». Du coup, si vous utilisez ces deux PPA en même temps, vous devrez construire les packages R à partir des sources en utilisant la méthode traditionnelle dans R, c’est-à-dire en utilisant install.packages().

 

Comme souvent dans les communautés open-source, l’équipe de maintenance de « UbuntuGIS PPA » est petite. Il peut s’écouler un certain temps avant que les paquets ne soient publiés pour votre distribution. Vous pouvez vérifier sur la page « UbuntuGIS unstable » si votre distribution est prise en charge. Seule les distribution Ubuntu en « LTS » sont disponibles. Cela dit, à ce jour (2020-05-01), les paquets pour Ubuntu 20.04 ne sont pas disponibles.

Pour ajouter le PPA UbuntuGIS,
Dans le terminal:

sudo add-apt-repository 'deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu focal main '
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 314DF160
sudo apt update
sudo apt upgrade

Si la commande apt-key ne fonctionne pas, vous pouvez utiliser la suivante :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 089EBE08314DF160

Ensuite, vous avez le choix d’installer vos packages R en utilisant les binaires Ubuntu si vous voulez qu’ils soient toujours à jour et correctement construits pour votre distribution ou de le faire à partir de sources depuis R en utilisant install.packages().

Dans le terminal:

sudo apt install r-cran-gstat r-cran-maps r-cran-mapdata r-cran-ncdf4 r-cran-sp r-cran-sf r-cran-sp r-cran-raster r-cran-geor r-cran-ggmap r-cran-leaflet r-cran-rosm

Mettre à jour les packages R

r-logo

Vous avez fini ! Vous pouvez maintenant lancer R et ne pas oublier de réinstaller tous les autres packages R pour qu’ils soient construits avec cette nouvelle version de R. En effet, les packages construits avec les versions R précédentes ne seront pas compatibles avec R4.0. La mise à jour des paquets construits à partir des sources nécessite update.packages() avec checkBuilt = TRUE pour réinstaller tous les packages même si vous avez les dernières versions disponibles.

Dans la console R :

update.packages(ask = FALSE, checkBuilt = TRUE)

Tester R et les packages de cartographie

Sur mon blog personnel StatnMap, j’ai écrit un article d’introduction à la cartographie avec {sf} & Co. Il contient suffisamment d’exemples pour tester l’installation correcte de R et de vos packages de manipulation de données géographiques. Le code est disponible sur github, il suffit donc d’exécuter les lignes de code suivantes et c’est tout :

# Download file with Spatial analyses
download.file("https://raw.githubusercontent.com/statnmap/blog_tips/master/2018-07-14-introduction-to-mapping-with-sf-and-co.R",
destfile = "test-spatial.R")
# Install missing dependencies 
# This may take some time. Packages will be built from source if not installed with Ubuntu binaries.
install.packages("attachment")
deps <- attachment::att_from_rscript("test-spatial.R")
attachment::install_if_missing(deps)
# Run the script
source("test-spatial.R")
# Show interactive outputs
m
tmap_leaflet(tm)
mapView(departements_L93)

C’est pas une jolie carte ça ?maps of Brittany (France) made with R and sf package

Si vous avez besoin d’aide pour l‘installation de votre serveur R, Docker, CI et le déploiement de packages et d’applications Shiny ou de cours en R avancé et en manipulation de données spatiales, vous pouvez contacter l’équipe ThinkR.


Comments


Also read