web-dev-qa-db-fra.com

R 3.5.0 pour Ubuntu

Les packages d'installation R 3.5.0 pour Ubuntu Xenial (16.04) n'existent pas encore sur les sites miroirs ubuntu. Existe-t-il une autre méthode pour mettre à jour R vers 3.5.0 sur ubuntu xenial? Sinon, existe-t-il une méthode différente pour mettre à jour R vers 3.5.0?

20
Larry

Les R 3.5 ne sont actuellement disponibles qu’à partir d’un PPA, car certains packages de CRAN ont des problèmes de compilation avec R 3.5.

Procédez à vos risques et périls.

La procédure qui a fonctionné pour moi est la suivante:

  1. Supprimez tous les packages r-cran-* de votre système (YMMV, j'installe généralement les packages à partir du code source et en ai très peu).

    • Rechercher avec dpkg -l | grep r-cran-
  2. Ajouter APP de Michael Rutter :

    Sudo add-apt-repository ppa:marutter/rrutter3.5
    Sudo apt-get update
    
  3. Mise à niveau r

    Sudo apt install r-api-3.5
    
  4. Installez tous les paquets dont vous avez besoin depuis la source (vers une bibliothèque personnelle ou une bibliothèque de site via install.packages()) ou en installant le paquet r-cran-* Ubuntu correspondant.

    J'utilise le script suivant pour réinstaller tous les packages de mes packages à partir de la bibliothèque de mon site personnel pour R 3.4:

    installed <- rownames(installed.packages())
    pkgs <- dir("~/R/x86_64-pc-linux-gnu-library/3.4")
    new <- setdiff(pkgs, installed)
    new
    install.packages(new)
    

    Si vous avez une machine avec plusieurs processeurs, vous pouvez accélérer le processus, par exemple:

    install.packages(new, Ncpus = 6)
    

Références

19
krlmlr

Le site CRAN a été mis à jour depuis la réponse de @ krlmlr début juin: https://cran.r-project.org/bin/linux/ubuntu/ .

Les instructions CRAN comportent plusieurs étapes, mais le résumé indique que le fichier sources.list doit faire référence à un référentiel spécifique à la version 3.5.x & 3.6.x. L'entrée est quelque chose comme

deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/

au lieu de l'entrée précédente (sans version) de

deb https://cloud.r-project.org/bin/linux/ubuntu xenial/

La description pertinente du site Web (qui changera éventuellement):

Les packages R 3.6 pour Ubuntu sur i386 et AMD64 sont disponibles pour la plupart des versions stables d’Ubuntu Desktop jusqu’à leur date de fin de vie officielle. Cependant, seule la dernière version de LTS (Long Term Support) est entièrement prise en charge. À compter du 18 novembre 2018, les versions prises en charge sont Xenial Xerus (16.04; LTS), Trusty Tahr (14.04; LTS), Bionic Beaver (18.04; LTS), Cosmic Seiche (18.10) et Disco Dingo (19.04). Remarque: pour installer les packages R 3.6, une entrée différente de sources.list est nécessaire. Voir ci-dessous pour plus de détails. Même si R est passé à la version 3.6, pour des raisons de compatibilité, l'entrée sources.list utilise toujours la désignation cran3.5.


modifier 2019-05-13: mise à jour pour la version R 3.6.0 du mois dernier.

11
wibeasley

La version xenial-cran35/ du référentiel NE FONCTIONNE PAS si vous avez une "version par défaut" définie dans apt, comme c'est le cas dans certaines distributions fonctionnant au-dessus d'Ubuntu, telles que Mint. Pour ma distribution Mint, il existe un fichier /etc/apt/apt.conf.d/01ubuntu à l'intérieur duquel il déclare le Default-Release "xenial";. Cela signifie que, puisque r-base existe dans le référentiel Ubuntu en version 3.2, avec la version "xenial", il n'utilisera jamais la branche 3.6 de l'autre dépôt, car le nom de publication de ce dépôt est "xenial-cran35". Vous devez éditer ce fichier pour changer la version par défaut en "xenail-cran35", ou faire quelque chose de plus précis en utilisant des fichiers de préférences apt ( https://wiki.debian.org/AptPreferences#A.2Fetc.2Fapt. 2 Préférences ).

C’est essentiellement la faute de R pour avoir un référentiel mal formaté. Ils auraient dû avoir 2 dépôts, chacun ayant un dossier de publication "xenial", une URL pour leur travail de branche 3.2 et une pour le travail de branche 3.5+. Au lieu de cela, ils ont un référentiel, et ont bâti le "nom de la version", ce qui fonctionne en quelque sorte pour Ubuntu, mais ne fonctionnera pas si vous avez une configuration non-base d'apt de cette manière.

0
Scott