web-dev-qa-db-fra.com

R install.packages renvoie "échec de création du répertoire de verrouillage"

J'obtiens cette erreur lors du téléchargement du package Rcpp:

> install.packages("Rcpp", dependencies=TRUE)
Installing package(s) into ‘/home/me/src/Rlibs’ (as ‘lib’ is unspecified)
trying URL 'http://cran.us.r-project.org/src/contrib/Rcpp_0.10.2.tar.gz'
Content type 'application/x-gzip' length 2380089 bytes (2.3 Mb)
...
Warning in dir.create(lockdir, recursive = TRUE) :
  cannot create dir '/home', reason 'Permission denied'
ERROR: failed to create lock directory ‘/home/me/src/Rlibs/00LOCK-Rcpp’
...

Comme ma machine se trouve sur un cluster d'ordinateurs, je l'ai essayée sur différents nœuds et j'ai pris soin de supprimer les fichiers temporaires téléchargés dans/tmp. Ce qui est étrange, c'est que j'ai le droit d'écrire dans/home/me/src/Rlibs /. Mes questions sont donc:

  1. pourquoi R veut-il avoir des droits d'écriture dans/home alors qu'il n'a besoin que de droits d'écriture dans/home/me /?
  2. comment puis-je corriger l'erreur?

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-redhat-linux-gnu (64-bit)
locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=C                 LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
 [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
loaded via a namespace (and not attached):
[1] tools_2.15.2
42
tflutre

La meilleure façon d'éviter cela est d'utiliser l'argument '--no-lock' sur la ligne de commande, par exemple,

R CMD INSTALL --no-lock <pkg>

Sur les systèmes de fichiers NFS, il n'est parfois pas évident de savoir ce que vous devez fermer. Depuis R, vous pouvez le faire depuis votre commande en utilisant:

install.packages("Rcpp", dependencies=TRUE, INSTALL_opts = c('--no-lock'))

83
jimmyb

Cela se produit lorsque votre dernière installation de package s'est interrompue anormalement. pour résoudre ce problème, vous devez supprimer le fichier verrouillé. Par exemple, exécutez cette commande dans la console R:

unlink("/home/me/src/Rlibs/00LOCK-Rcpp", recursive = TRUE)

J'espère que cela t'aides!

20
Sina