R install.packages returns "failed to create lock directory"
Asked Answered
F

6

112

I get this error when downloading the Rcpp package:

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

As my machine is on a computer cluster, I've tried it on different nodes, and I was careful to delete the temporary files downloaded in /tmp. What is strange is that I have rights to write in /home/me/src/Rlibs/. So my questions are:

  1. why does R want to have writing rights in /home while it only needs writing rights in /home/me/?
  2. how can I fix the error?

> 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
Fiscus answered 17/1, 2013 at 15:16 Comment(0)
A
201

On NFS file systems it is sometimes not obvious what things you have to close.

The best way to avoid this is to use the --no-lock argument on the command line, i.e.:

R CMD INSTALL --no-lock <pkg>

From within R, you can do this from within your command using:

install.packages("Rcpp", dependencies = TRUE, INSTALL_opts = '--no-lock')
Amboina answered 17/1, 2013 at 22:9 Comment(7)
This resolved the issue for me too, but I'm with @Garini, what is causing the file lock?Metatarsal
@rjkunde, I'm also trying to understand this issue. I see the folder 00LOCK is sometimes created when I already have the package (or a dependency) installed and there is a problem (not an error) in install.packages().Versatile
In my experience, the shared file system NFS was mostly to blame. Someone with much more knowledge of the package management file-handling will hopefully speak up and correct me, but I assumed it was related to multiple distributed R processes spread over SGE cluster trying to interact with the package index files in LIB_PATH and the latency of cleaning up lock file on NFS file system.Amboina
Thanks for the insight! Since my problem was that I was unable to remove the 00LOCK folder within the same R session because of a NFS file that cannot be removed, when installing a package I go through every package that will be imported (and the package itself), detach it, remove it, install it again, and attach it again. In this way it seems so far that no folder 00LOCK remains after all packages are installed. This without using INSTALL_opts = c('--no-lock').Versatile
Interesting, I'm hitting this issue on OS X without any NFS. But, your solution worked.Sandler
Note that on the command line R CMD INSTALL --no-lock <pkg> may error if you are installing over a previous installation, giving the ERROR: cannot remove earlier installation, is it in use? message followed by an autoremoval of the old installation. So just run R CMD INSTALL --no-lock <pkg> again and that should complete the installation.Mun
Alternatively this can also be applied in the RStudio GUI using Build > Configure Build Tools > Build Tools left-hand tab > Install and Restart --- R CMD INSTALL additional options: = --no-lock This means you can then just choose Build > Install and Restart, (though twice! for the same reason as my comment above for the command line.Mun
T
53

This happens when your last package installation has interrupted abnormally. to fix this you should remove the locked file. For example Execute this command in R console:

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

Hope this helps!

Trilogy answered 25/2, 2018 at 13:43 Comment(3)
deleting the file also helpsMasson
Sometimes unlink does not remove the folder ad it is necessary to restart the R session.Versatile
Removing the entire directory recursively worked for meCrutch
F
18

The easiest way to avoid this issue is before installing any package run the line below

options("install.lock"=FALSE)

Then try the install.packages("name_of_package") to install the package. The 00LOCK error would not come.

Flintshire answered 22/2, 2021 at 7:37 Comment(0)
A
0

This can happen when you are upgrading to a major version of the R as well. Some major upgrades require you to rebuild your packages, e.g., R 4.0. In my case, I had installed R using Homebrew, brew install R and maintained it for a long time, but when I upgraded to 4, I had to build the packages again and ran into this problem.

To resolve it, you need to make sure that Homebrew removes leftovers of your older R installation. In default setting, you can find them here, /usr/local/lib/R. I had instances of 3.5, and 3.6 besides the rest of R's internal. You can remove everything there, and install R again, and everything should work fine. Or just remove the older version of R, and empty the 4.0. I recommend doing a clean install though.

So, if you are maintaining your R using Homebrew and ran into this problem, here is how you fix it:

brew uninstall R
rm -r /usr/local/lib/R
brew install R
Asmodeus answered 6/5, 2020 at 12:6 Comment(0)
C
0

This solution worked for me:

First Install This

options("install.lock"=FALSE)

Package Install

install.packages("name_of_package")
Centime answered 14/12, 2023 at 10:34 Comment(0)
S
-1

I encountered a similar problem running windows 7:

Error in install.packages : ERROR: failed to lock directory ‘D:\Program Files\R\R-3.6.2\library’ for modifying.

I solved this problem with below command in the R-console:

unlink("D:\\Program Files\\R\\R-3.6.2\\library/00LOCK", recursive = TRUE)

Hope this help windows users...

Superabound answered 18/12, 2019 at 15:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.