2013-01-17 10 views
26

otrzymuję ten błąd podczas pobierania pakietu RCPP:R install.packages wraca „nie udało się utworzyć katalogu Lock”

> 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’ 
... 

Jak moja maszyna jest na klastrze komputerowym, próbowałem go na różnych węzłach, i starałem się usunąć pliki tymczasowe pobrane w/tmp. Dziwne jest to, że mam prawo pisać w/home/me/src/Rlibs /. Więc moje pytania są następujące:

  1. dlaczego R chce mieć prawa do zapisu w/home, podczas gdy potrzebuje tylko prawa do zapisu w/home/me /?
  2. Jak mogę naprawić błąd?

> 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 

Odpowiedz

45

Najlepszym sposobem na uniknięcie tego jest użycie "--no-lock argument w linii poleceń, np

R CMD INSTALL --no-lock <pkg>

Na systemach plików NFS czasami nie jest jasne, jakie rzeczy należy zamknąć. Od wewnątrz R, można to zrobić z poziomu polecenia przy użyciu:

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

+3

To jest fajne dzięki. Ale co się dzieje? – Garini

+1

To rozwiązało problem również dla mnie, ale jestem z @Garini, co powoduje blokadę pliku? – rjkunde

0

Dzieje się tak, gdy ostatni pakiet instalacyjny został przerwany nienormalnie. aby to naprawić, należy usunąć zablokowany plik. Wykonanie tego polecenia w konsoli R:

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

Nadzieja to pomaga!

Powiązane problemy