我正在尝试使用他们网站上的代码将Bioconductor安装到R中.当我输入代码时(见下文),我收到一条错误消息,说某些软件包无法更新,安装路径是不可写的.
> ## try http:// if https:// URLs are not supported > source("https://bioconductor.org/biocLite.R") Bioconductor version 3.4 (BiocInstaller 1.24.0), ?biocLite for help > biocLite() BioC_mirror: https://bioconductor.org Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31). installation path not writeable, unable to update packages: Matrix, mgcv,
生存
我可以通过转包/安装包来安装这些包.
> utils:::menuInstallPkgs() trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/Matrix_1.2-8.zip' Content type 'application/zip' length 2775038 bytes (2.6 MB) downloaded 2.6 MB trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/mgcv_1.8- 16.zip' Content type 'application/zip' length 2346257 bytes (2.2 MB) downloaded 2.2 MB trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/survival_2.40-1.zip' Content type 'application/zip' length 5109948 bytes (4.9 MB) downloaded 4.9 MB package ‘Matrix’ successfully unpacked and MD5 sums checked package ‘mgcv’ successfully unpacked and MD5 sums checked package ‘survival’ successfully unpacked and MD5 sums checked The downloaded binary packages are in C:\Users\stxeb8\AppData\Local\Temp\Rtmp2tQZ4v\downloaded_packages
然后我可以去打包/加载包并成功加载它们并搜索并看到包在那里.
> local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE) + if(nchar(pkg)) library(pkg, character.only=TRUE)}) Loading required package: nlme This is mgcv 1.8-16. For overview type 'help("mgcv-package")'. > local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE) + if(nchar(pkg)) library(pkg, character.only=TRUE)}) > local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE) + if(nchar(pkg)) library(pkg, character.only=TRUE)}) > local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE) + if(nchar(pkg)) library(pkg, character.only=TRUE)}) > search() [1] ".GlobalEnv" "package:survival" "package:mgcv" [4] "package:nlme" "package:Matrix" "package:BiocInstaller" [7] "package:stats" "package:graphics" "package:grDevices" [10] "package:utils" "package:datasets" "package:methods" [13] "Autoloads" "package:base"
但是当我去安装bioconductor时,它给了我同样的错误信息,即Matrix,mgcv和生存无法更新.
> ## try http:// if https:// URLs are not supported > source("https://bioconductor.org/biocLite.R") Bioconductor version 3.4 (BiocInstaller 1.24.0), ?biocLite for help > biocLite() BioC_mirror: https://bioconductor.org Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31). installation path not writeable, unable to update packages: Matrix, mgcv, survival
我能做些什么才能更新这些包,以便安装bioconductor?
这对我来说是一个许可问题.首先,我确定了使用的软件包安装位置installed.packages()[, c("Package", "LibPath")]
.这将输出一个长2列矩阵,其中包含包的名称和位置.然后你会看到有问题的包裹在哪里.在我的情况下,他们在/usr/lib/R/site-library
和/usr/lib/R/library
.然后我改变了这些文件夹的权限chmod
(我chmod -R 777
在主R文件夹上使用,这是我的个人计算机,所以我认为安全性并不是一个大问题).
就像Martin Morgan回答的那样,尽管有错误消息,但应该已经安装了Bioconductor软件包。但是,在以后进行程序包更新时,这种情况继续发生。
通常,我建议不要更改系统文件夹的权限,因为像R这样的程序应该在没有管理权限的情况下也能正常工作。
如果您避免更改系统文件夹的权限,我同样建议您不要使用管理权限来安装软件包,因为将来每次您必须更新这些软件包时,都需要这样做!
解决此问题的最佳方法是重新安装以前具有管理权限的软件包。可以从Bioconductor产生的错误代码中识别包装。在您的情况下,这些软件包是Matrix, mgcv, survival
-请注意,错误消息在CRAN和Bioconductor软件包之间没有区别,它包括以前已安装的具有管理权限的所有软件包!
要删除报告的软件包,请打开具有管理权限的 R (希望是最后一次打开),然后使用remove.packages()
删除所有报告的软件包-包括Bioconductor软件包。对于您的情况:
remove.packages(c("Matrix", "mgcv", "survival"))
在重新安装这些软件包之前,请先退出然后重新启动R,而无需管理员权限。现在,您可以重新安装CRAN软件包。
install.packages(c("Matrix", "mgcv", "survival"))
系统将询问您是否要将软件包安装在本地目录中,键入yes
该目录。
如果安装无法成功,请找到本地R目录(在home
/ user
文件夹中)并将其添加为lib =
。在linux上,命令如下所示:
install.packages(c("Matrix", "mgcv", "survival"), lib = "~/R/x86_64-pc-linux-gnu-library/3.5")
如果以前已使用管理权限安装了Bioconductor软件包:
library(BiocInstaller) biocLite(c("PACKAGE1", "PACKAGE2"))
如果无法安装在本地目录中,请再次将lib =
参数添加到biocLite()
commnad中。