web-dev-qa-db-fra.com

Erreur d'installation d'un paquet R

S'il vous plaît aidez-moi, je ne peux pas installer le package "MASS".

> library(MASS)
Error in library(MASS) : there is no package called ‘MASS’

J'ai essayé d'installer le paquet MASS à partir du local:

> utils:::menuInstallLocal()  
package ‘MASS’ successfully unpacked and MD5 sums checked  
Warning: cannot remove prior installation of package ‘MASS’

Même je ne peux pas enlever "MASS":

> remove.packages("MASS")  
Removing package from ‘C:/Program Files/R/R-3.0.1/library’  
(as ‘lib’ is unspecified)  
Error in find.package(pkgs, lib) : there is no package called ‘MASS’

Aussi avec cette option je ne pouvais pas installer le paquet:

> options(install.lock=T)  
> utils:::menuInstallLocal()  
package ‘MASS’ successfully unpacked and MD5 sums checked  
Warning: cannot remove prior installation of package ‘MASS’  
Warning: restored ‘MASS’  
Warning message:  
In file.copy(savedcopy, lib, recursive = TRUE) :  
  problem copying C:\Program Files\R\R-3.0.1\library\00LOCK\MASS\libs\x64\MASS.dll to C:\Program Files\R\R-3.0.1\library\MASS\libs\x64\MASS.dll: Permission 

Et avec install.packages:

> install.packages("C:\\MASS_7.3-35.Zip",repos=NULL)
package ‘MASS’ successfully unpacked and MD5 sums checked  
Warning: cannot remove prior installation of package ‘MASS’  
Warning: restored ‘MASS’  
Warning message:  
In file.copy(savedcopy, lib, recursive = TRUE) :  
  problem copying C:\Program Files\R\R-3.0.1\library\00LOCK\MASS\libs\x64\MASS.dll to C:\Program Files\R\R-3.0.1\library\MASS\libs\x64\MASS.dll: Permission 

Je devrais mentionner que j'utilise R avec ORE (Oracle R Enterprise).

43
parvij

Il pourrait y avoir quelques choses qui se passent ici. Commencez par déterminer d'abord l'emplacement de votre bibliothèque:

Sys.getenv("R_LIBS_USER")

Nous connaissons déjà les vôtres grâce aux informations que vous avez données: C:\Program Files\R\R-3.0.1\bibliothèque

Je crois que vous avez là un fichier appelé: 00LOCK. De ?install.packages:

Notez qu'il est possible que l'installation du package échoue si mal que le répertoire de verrouillage n'est pas supprimé: cela empêche toute installation ultérieure dans le répertoire de la bibliothèque (ou pour --pkglock du package) jusqu'à ce que le répertoire de verrouillage soit supprimé manuellement.

Vous devez supprimer ce fichier. Si vous aviez installé le paquetage pacman, vous auriez pu simplement utiliser p_unlock() et le fichier 00LOCK Aurait été supprimé. Vous ne pouvez pas installer pacman maintenant tant que le fichier 00LOCK N'a pas été supprimé.

Pour installer pacman, utilisez:

install.packages("pacman")

Il peut y avoir un deuxième problème. C'est là que vous avez en quelque sorte corrompu MASS. Selon mon expérience, cela peut se produire si vous essayez de mettre à jour un paquet alors qu'il est utilisé dans une autre session R. Je suis sûr qu'il y a d'autres moyens de causer cela aussi. Pour résoudre ce problème, essayez:

  1. Fermez toutes les sessions R (utilisez le gestionnaire de tâches pour vous assurer que vous êtes vraiment libre de session R) Ctrl + Alt + Delete
  2. Accédez à l'emplacement de votre bibliothèque Sys.getenv("R_LIBS_USER"). Dans votre cas, il s’agit de: bibliothèque: C:\Program Files\R\R-3.0.1 \
  3. Supprimer manuellement le package MASS
  4. Lancez une session de vanille de R
  5. Installez MASS via install.packages("MASS")

Si cela fonctionne, faites-le-moi savoir.

70
Tyler Rinker

J'ai eu le même problème avec le paquet e1071. Fermez simplement toutes les autres sessions R parallèles et vous serez prêt à partir.

23
derp92

La solution indiquée par Guannan Shen présente un inconvénient qui passe généralement inaperçu. (Guannan Shen, j'ai essayé de vous lier ou de poster, mais je n'ai pas pu.)

Lorsque vous exécutez Sudo R Pour exécuter install.packages() en tant que superutilisateur, les répertoires dans lesquels vous installez la bibliothèque appartiennent à root user, a.k.a., le superutilisateur.

Donc, la prochaine fois que vous aurez besoin de mettre à jour vos bibliothèques, vous ne vous souviendrez pas que vous avez exécuté Sudo, laissant donc root en tant que propriétaire des fichiers et des répertoires; cela provoque finalement l'erreur lorsque vous essayez de déplacer des fichiers, car personne ne peut écraser root sinon eux-mêmes.

Cela peut être évité en courant

Sudo chown -R yourusername:yourusername *

dans le répertoire lib qui contient vos bibliothèques locales, en remplaçant yourusername par la valeur adéquate de votre installation. Ensuite, vous essayez d'installer à nouveau.

2
Marcelo Ventura

Après avoir utilisé des caractères de guillemet incorrects dans install.packages(), la correction des guillemets a généré l'erreur "impossible de supprimer l'installation antérieure". Fermer et redémarrer R a fonctionné.

1
user4997135

Dans mon cas, l'installation du paquet nlme est en difficulté:

mv: cannot move '/home/guanshim/R/x86_64-pc-linux-gnu-library/3.4/nlme' 
to '/home/guanshim/R/x86_64-pc-linux-gnu-library/3.4/00LOCK-nlme/nlme': 
Permission denied

Utiliser buntu 18.04CTRL+ALT+T pour ouvrir une fenêtre de terminal:

Sudo R
install.packages('nlme')
q()
0
Guannan Shen

Dans mon cas, je devais fermer la session R et réinstaller tous les paquets. Dans cette session, j'ai travaillé avec de grandes tables, je suppose que cela aurait pu avoir un effet.

0
JelenaČuklina