R语言—下载R包提示00LOCK-dplyr解决
1.遇到问题(R版本3.5.1)
在使用其他软件的时候会调用R包dplyr
,当时提示这个软件包版本不够,会影响其他软件的使用。因此需要升级这个R包,当时想的是删除当前版本,然后下载一个新的版本。
使用remove.packages("dplyr")
删除,之后下载使用install.packages("dplyr")
,报错如下:
ERROR: failed to lock directory ‘/data/cfc424_data/biosoft/miniconda3/lib/R/library’ for modifying
Try removing ‘/data/cfc424_data/biosoft/miniconda3/lib/R/library/00LOCK-dplyr’
Warning in install.packages :
installation of package ‘dplyr’ had non-zero exit status
2. 搜索问题
搜索这个问题时,尝试了几个方法都没有解决,看到下面的链接:
https://github.com/stan-dev/rstanarm/issues/543
按照里面的方法,删掉LOCK文件;
rm -rf /data/cfc424_data/biosoft/miniconda3/lib/R/library/00LOCK-dplyr
3. 尝试本地安装
由于环境中的R目前是R3.5.1,所以先尝试本地安装吧,毕竟R更新的版本太多了。
## 下载source package
wget -c https://cran.r-project.org/src/contrib/dplyr_1.0.8.tar.gz
## 进入R环境
R
## 尝试本地安装
> install.packages("./dplyr_1.0.8.tar.gz",type="source",repo=NULL)
ERROR: dependencies ‘generics’, ‘lifecycle’, ‘vctrs’ are not available for package ‘dplyr’
* removing ‘/data/cfc424_data/biosoft/miniconda3/lib/R/library/dplyr’
Warning message:
In install.packages("./dplyr_1.0.8.tar.gz", type = "source", repo = NULL) :
安装程序包‘./dplyr_1.0.8.tar.gz’时退出狀態的值不是0
从上面可以看到,存在三个依赖包,直接下载出现报错:
> install.packages(c("generics", "lifecycle","vctrs"))
Warning message:
packages ‘generics’, ‘lifecycle’, ‘vctrs’ are not available (for R version 3.5.1)
手动下载:
wget -c https://cran.r-project.org/src/contrib/generics_0.1.2.tar.gz
wget -c https://cran.r-project.org/src/contrib/lifecycle_1.0.1.tar.gz
wget -c https://cran.r-project.org/src/contrib/vctrs_0.3.8.tar.gz
进入R中手动安装这三个包,lifecycle
和generics
成功安装,vctrs
安装失败,提示报错,缺少依赖包ellipsis
:
> install.packages("./vctrs_0.3.8.tar.gz", type="source", repo=NULL)
ERROR: dependency ‘ellipsis’ is not available for package ‘vctrs’
* removing ‘/data/cfc424_data/biosoft/miniconda3/lib/R/library/vctrs’
Warning message:
In install.packages("./vctrs_0.3.8.tar.gz", type = "source", repo = NULL) :
安装程序包‘./vctrs_0.3.8.tar.gz’时退出狀態的值不是0
本以为安装完上面vctrs的依赖就可以了,结果发现后面依然依赖了一堆的包,我觉得这很可能是R版本太老了导致的,最终选择放弃该版本下载,使用conda重新创建一个R环境,下载即可。
记录
注意,经过上面的操作发现,太陈旧的R版本(R3.5.1)会引起R包安装问题。
当时下载的R包是复合当时环境的,现在下载的R包要求更高版本的依赖包了,所以需要更新完依赖包才行,对于依赖过多的R包,应该及时放弃。