Installation de R 3.5 sur Ubuntu 18.04 LTS et astuces pour les packages de cartographie

Vous prévoyez de mettre à niveau votre installation serveur d’Ubuntu 16.04 vers Ubuntu 18.04 LTS ? C’est aussi le meilleur moment pour migrer vers R 3.5 ! Par ailleurs, si vous trouvez toujours difficile d’installer des packages R pour les données géographiques sur Ubuntu, ce temps est révolu. Suivez le guide !

Nouvelle version Ubuntu et nouvelle version de R

ubuntu-rSi 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 Long Term Support (LTS). L’utilisation d’une version LTS est plus sûre pour les entreprises ayant des contraintes de stabilité. Cela permet d’éviter d’éventuels ruptures qui compromettraient vos flux de travail et donc votre entreprise. En effet, si vous travaillez avec des données géographiques dans R sur Ubuntu, vous avez probablement remarqué que qu’une installation utilisant des versions récentes de paquets comme gdal, geos, proj ou netcdf n’était possible que si vous travaillez sur une version LTS d’Ubuntu, à l’aide d’UbuntuGIS PPA. Ce mois-ci, la première version point de Ubuntu 18.04.1 Bionic Beaver pour serveur ou ordinateur personnel est disponible en téléchargement. Si vous utilisez toujours Ubuntu 16.04, cette mise à jour devrait vous être proposée.

Au cours des derniers mois, vous avez également entendu parler de la sortie de R 3.5 comme annoncé par la R Core Team. Elle a notamment introduit des améliorations de performances grâce au ALTREP. Maintenant que la première version de maintenance R 3.5.1 est sortie, vous pourriez vouloir la mettre en production dans votre travail.

Pendant que vous jouez avec une série de commandes sudo apt update, pourquoi ne pas faire les deux mises à jour en même temps ?

Mise à jour vers Ubuntu 18.04

ubuntu-logoComme toujours, assurez-vous d’avoir des sauvegardes de vos fichiers avant de commencer la migration ! Si vous utilisez Ubuntu 16.04 LTS, vous pouvez voir la nouvelle version en utilisant le update core manager. Assurez-vous qu’il est installé :

sudo apt-get install update-manager-core

puis lancez

sudo do-release-upgrade

Cela devrait fonctionner si vous n’avez autorisé l’installation que des versions LTS. Dans mon propre cas, je n’ai peut-être pas été assez patient, mais la nouvelle version n’a pas été proposée. Vous pouvez quand même autoriser temporairement la version “normale”, qui, ici, vous proposera la dernière version disponible 18.04. Celle qu’on souhaite. Soyez tout de même prudent avec ce changement. Si vous utilisez votre ordinateur pour travailler en mode production, remettez-le sur “lts” dès que vous avez installé la LTS.

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

Prompt=lts

par :

Prompt=normal

Ensuite, vous pouvez lancer sudo do-release-upgrade.

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

Supprimer la version précédente de R

ubuntu-rSupprimer les dépôts supplémentaires

Pour pouvoir utiliser la R 3.5, 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. Peut-être que oui, peut-être que 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 :

Dans le terminal :

sudo vi /etc/apt/sources.list

Trouvez la ou les lignes qui ressemblent à deb https://mirror.ibcp.fr/pub/CRAN/ xenial/ et commentez-les avec un #.

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/nom.du.fichier.avec.un.nom.de.mirroir.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 purge r-base* r-recommended r-cran-*
sudo apt autoremove
sudo apt update

R devrait être totalement effacé.

Installer la nouvelle version de R (3.5)

ubuntu-rDéfinir les nouveaux dépôts Ubuntu pour R 3.5

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 bionic-cran35/'

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

En cas de problème avec le « keyserver », vous pouvez utiliser cette commande plutôt:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E084DAB9

Installer R 3.5

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

Dans le terminal :

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

Installer d’autres paquets binaires avec Ubuntu

Personnellement, j’ai quelques paquets R installés avec un PPA Ubuntu (Personal Package Archives) parce que je fais confiance aux responsables d’archives 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 pour les paquets de cartographie ou ceux qui contiennent du java.
Avec la version R 3.5, les paquets devaient être reconstruits différemment qu’avec la version précédente. Michael Rutter l’a expliqué sur son blog dédié. Par conséquent, vous devrez utiliser son PPA avant d’installer les paquets Ubuntu pour R (commençant par “r-cran-”).

Dans le terminal (ma sélection personnelle) :

sudo add-apt-repository ppa:marutter/c2d4u3.5
sudo apt-get update
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-xlsx

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

ubuntu-carto-rL’installation de packages R comme {sf}, {sp}, {rgdal}, {rgeos}, {rgeos}, …. peut nécessiter des paquets Ubuntu externes. C’est facilité par le dépôt UbuntuGIS PPA. L’équipe de maintenance de ce dépôt est petite et cela peut prendre un certain temps avant que les paquets ne soient publiés pour votre distribution. D’ailleurs, seuls les paquets pour les distributions Ubuntu LTS sont disponibles. À ce jour, les paquets pour Ubuntu 18.04 ne sont pas disponibles : si vous avez les compétences, vous pouvez les aider !.

Avec Ubuntu 16.04, UbuntuGIS est nécessaire pour l’installation des packages de cartographie R comme {sf}. Avec Ubuntu 18.04, les versions par défaut des dépendances Ubuntu sont suffisamment à jour, mais vous devez quand même les installer.

Quelle que soit la distribution Ubuntu LTS que vous utilisez, vous devriez installer le PPA UbuntuGIS pour utiliser les packages de cartographie dans R. Au passage, vous pourrez également installer la dernière version de QGIS.

Dans le terminal (ma sélection personnelle) :

sudo add-apt-repository 'deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu bionic main '
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 314DF160
sudo apt update
sudo apt install libgdal-dev libproj-dev libgeos-dev libudunits2-dev libv8-dev libcairo2-dev libnetcdf-dev

Si la commande apt-key ne fonctionne pas, vous pouvez essayer avec celle-ci :

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

Ensuite, vous pouvez installer vos paquets R en utilisant Ubuntu si vous voulez qu’ils soient toujours à jour et correctement construits pour votre distribution.
EDIT (2019-03-22): Il semble que r-cran-sf et r-cran-rosm ne peuvent pas être installés à partir du PPA mrutter si vous utilisez le PPA UbuntuGIS. Vous devrez installer {sf} directement dans R avec le classique install.packages("sf").

Dans le terminal :

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

Mettre à jour les paquets R

r-logoVous avez fini ! Vous pouvez maintenant jouer avec R 3.5. Mais n’oubliez pas de réinstaller tous les autres packages R car il vous faut les construire avec cette nouvelle version. Cela nécessite checkBuilt = TRUE pour réinstaller les paquets même si vous avez déjà la dernière version disponible du package.

Dans la console R :

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

Si vous avez besoin d’aide pour votre installation de serveur R, vos déploiements de packages ou d’applications Shiny, ou si vous cherchez une formation à la cartographie avec R, vous pouvez contacter l’équipe ThinkR.

Auteur

Sébastien Rochette
Sébastien RochetteModeller, R-trainer, Playing with maps
Modeller, R-trainer, Playing with maps