41 votes

R 3.4.1 Erreur de chemin de la bibliothèque personnelle "Single Candle": impossible de créer "NA"

Je viens de mettre à jour R (3.4.1 "Single Candle") sur ma machine Linux Mint 18.1 Cinnamon et j'ai essayé d'installer un paquet. R a renvoyé ce qui suit:

 > install.packages('ggplot2')
Installing package into ‘/usr/local/lib/R/site-library'
(as ‘lib' is unspecified)
Warning in install.packages("ggplot2") :
  'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead?  (y/n) y
Would you like to create a personal library
NA
to install packages into?  (y/n) y
Error in install.packages("ggplot2") : unable to create ‘NA'
 

J'ai déjà rencontré la sortie 'lib not write', mais elle offre généralement une solution comme celle-ci:

 Would you like to create a personal library
~/R/x86_64-pc-linux-gnu-library/3.4
to install packages into?  (y/n) y 
 

Des idées pour lesquelles la bibliothèque personnelle suggère NA? Y at-il un moyen de remplacer manuellement cela?

12voto

arcruz0 Points 133

Je ne sais pas quelle est la cause de ce problème (je suis aussi l'expérience sur Ubuntu 16.04), mais voici une solution de contournement:

.libPaths(c("/home/your_username/R/x86_64-pc-linux-gnu-library/3.4/", .libPaths()))

Bien sûr, vous pouvez remplacer "/home/your_username/..." dans un autre répertoire (qui va stocker votre bibliothèque personnelle).

Cette solution rend install.packages() et library() de travail. Attendre une correction!

EDIT: je tiens à noter que cette solution n'est pas persistant. Qui est, il ne durera pas après le redémarrage de R. Vous pouvez résoudre ce problème en ajoutant la même ligne de code décrit ci-dessus à l' /home/your_username/.Rprofile le fichier.

12voto

Phil Points 2913

En regardant les détails dans @Dirk 's commentairehttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866768c'est un comportement planifié de sorte que les paquets sont installés une fois pour tous les utilisateurs du système.

La solution est de faire /usr/local/lib/R/ accessible en écriture pour tous les utilisateurs, plutôt que de rétablir l'ancien comportement d'avoir un paquet personnel de la bibliothèque pour chaque utilisateur individuel.

Ouvrir un terminal et:

  • Accédez /usr/local/lib/ avec cd /usr/local/lib/
  • Changer le propriétaire:groupe afin que tous les utilisateurs peuvent écrire dans le dossier. J'ai justement un groupe sur mon ordinateur que tous les utilisateurs sont membres de, de sorte que j'ai utilisé, mais voir https://askubuntu.com/questions/66718/how-to-manage-users-and-groups pour obtenir de l'aide avec la mise en place d'un groupe si nécessaire
  • Pour modifier la propriété utiliser sudo chown owner:group -R R/. owner est un tout utilisateur, il n'a pas vraiment d'importance. group est l'une des clés; assurez-vous que toute personne voulant utiliser la R de votre système est un membre de ce groupe. -R est récursive (c'est à dire le faire à tous les fichiers et dossiers R/).
  • Si vous devez modifier les autorisations de groupe, utilisez chmod -R 775 R/. Cela donne le propriétaire et le groupe de lecture, d'écriture et d'exécution des autorisations, et donne à toutes les autres autorisations de lecture et exécution.

Maintenant, redémarrez R et vous devriez être en mesure d'installer des paquets à votre cet emplacement partagé.

10voto

potockan Points 2521

Ma solution était la suivante:

Dans le fichier /usr/lib/R/etc/Renviron il y a une configuration de R.

Dans les lignes 43-45 il y a:

# edd Jun 2017  Comment-out R_LIBS_USER
#R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'}

J'ai décommenté R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}, redémarré RStudio et maintenant ça fonctionne.

EDIT: en Regardant les commentaires, il semble comme un comportement planifié. Ici est une autre solution.

3voto

MYaseen208 Points 3379

Après le 8 juillet 2017, cela résoudra tous les problèmes

 sudo apt-get update
 

0voto

zefeng wu Points 1

Peut-être que ceci est un bug de R 3.4.1, et ma solution est de changer la ligne de

 R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'} 
 

dans /etc/R/Renviron fichier dans

 R_LIBS_SITE=${R_LIBS_SITE-'~/R/x86_64-pc-linux-gnu-library/3.4.1:/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X