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).
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:
Sys.getenv("R_LIBS_USER")
. Dans votre cas, il s’agit de: bibliothèque: C:\Program Files\R\R-3.0.1 \MASS
MASS
via install.packages("MASS")
Si cela fonctionne, faites-le-moi savoir.
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.
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.
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é.
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.04, CTRL+ALT+T pour ouvrir une fenêtre de terminal:
Sudo R
install.packages('nlme')
q()
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.