安装路径不可写R,无法更新包

时间:2017-01-24 21:21:30

标签: r bioconductor mgcv

我正在尝试使用其网站上的代码将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?

13 个答案:

答案 0 :(得分:13)

这对我来说是一个许可问题。首先,我使用installed.packages()[, c("Package", "LibPath")]确定了软件包的安装位置。这将输出一个长2列矩阵,其中包含包的名称和位置。然后你会看到有问题的包裹在哪里。就我而言,他们在/usr/lib/R/site-library/usr/lib/R/library。然后我通过chmod更改了这些文件夹的权限(我在主R文件夹上使用chmod -R 777,这是我的个人计算机,因此我认为安全性并不是一个大问题。)

答案 1 :(得分:5)

就像马丁摩根回答的那样,尽管有错误信息,仍应安装Bioconductor软件包。但是,在进行未来的软件包更新时会继续发生这种情况。

一般情况下,我建议不要更改系统文件夹的权限,因为像R这样的程序应该在没有管理权的情况下运行良好。

如果您避免更改系统文件夹的权限,我同样建议不要安装使用管理权限的软件包,因为将来每次必须更新这些软件包时都需要这样做!

解决此问题的最佳方法是重新安装以前安装了管理权限的软件包。可以从Bioconductor生成的错误代码中识别包。在您的情况下,这些包是Matrix, mgcv, survival - 请注意CRAN和Bioconductor包之间的错误消息不同,它包括以前安装了管理权限的所有包!

要删除报告的软件包,请打开具有管理权限的 (最后一次希望)并使用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,否则无法安装在本地目录中。

答案 2 :(得分:2)

看起来有几个推荐的&#39;软件包安装在两个地方 - 可能是您不具有写访问权限的目录中的管理员帐户,然后是RStudio在您具有写访问权限的目录中。 biocLite()抱怨前者。

除非biocLite()抱怨无法安装的Bioconductor软件包(与无法更新不同),否则没有问题,并且已成功安装基本的Bioconductor软件包。查看https://support.bioconductor.org以获取与Bioconductor相关的未来支持。

答案 3 :(得分:1)

我在其他Bioconductor封装中也遇到类似的问题,解决方案比我想象的要简单。我必须安装日志上指出的一些OS软件包:libcurl-devlibcurl4-openssl-devlibssl-dev

我的建议是检查R日志并查找“由于找不到[PACKAGE]而导致配置失败。尝试安装”。

答案 4 :(得分:0)

一种解决方案是打开终端并使用管理员权限

加载R.
cat

然后你可以更新。但要小心。这可以由管理员在应该由用户拥有的目录中创建包。

在这种情况下,不要以root身份加载R(在下次更新之前解决问题),请检查.libPaths()。您将拥有一个目录列表。

sudo R
update.packages()
source("https://bioconductor.org/biocLite.R")
biocLite()

在我的情况下,&#34; / usr / lib / R / library&#34;中的所有包。由root拥有,除了一个之外的所有人都由普通用户(非root用户)拥有&#34; /home/itsame/R/x86_64-pc-linux-gnu-library/3.4"。

如果您拥有管理员权限,一个简单的解决方案可能是在所有地方运行chown:例如,我无法更新curl包。我用过:

.libPaths()
"/home/it_s_me/R/x86_64-pc-linux-gnu-library/3.4" "/usr/lib/R/library"

答案 5 :(得分:0)

如果您在Windows上运行R / Rstudio,则只需以管理员身份打开R / Rstudio。右键单击该图标,然后以管理员身份运行

答案 6 :(得分:0)

由于使用R 3.6.1版本,脚本http://bioconductor.org/biocLite.R返回此消息“错误:使用R 3.5版或更高版本,请使用BiocManager安装Bioconductor软件包;请参见https://bioconductor.org/install”以下步骤:

  1. 获取R用于安装库的目录列表和 使用.libPaths()
  2. 选择具有写权限的一个
  3. 使用install.packages("BiocManager")
  4. 安装“ BiocManager”库
  5. 通过强制目录安装“ bioconductor”库 具有以下权限的写权限:BiocManager::install("Rgraphviz", lib = "C:/Users/tizbet/Documents/R/win-library/3.6")

我从事以下R安装:

platform x86_64-w64-mingw32arch x86_64os mingw32system x86_64, mingw32version.string R version 3.6.1 (2019-07-05)

我受到Kasper Thystrup Karstensen答案的启发

答案 7 :(得分:0)

Ubuntu:

sudo apt install libcurl-dev

Fedora:

sudo dnf install libcurl-devel

答案 8 :(得分:0)

尝试添加参数 force = TRUE

BiocManager::install("XX", force = TRUE )

答案 9 :(得分:-1)

我遇到了同样的问题,答案是将 Root Access 提供给R,即以管理员身份运行R或Rstudio

检查这个问题: installed directory not writable, cannot update packages 'boot', 'class', 'KernSmooth', 'mgcv', 'nnet', 'rpart', 'spatial'

答案 10 :(得分:-1)

解决此问题的正确方法如下:

  1. 以管理员身份启动R:sudo R
  2. 在R控制台中执行以下操作:update.packages()

总而言之,一些最新的软件包是必需的,并且在管理模式下更新它们可以解决此问题。 `

答案 11 :(得分:-1)

通过键入 q()输入退出R。 然后再次输入 sudo R 并按 enter 进行Mew软件包安装。

答案 12 :(得分:-1)

我通过以管理员身份打开Rstudio来解决了这个问题。

相关问题