安装软件包-无法打开文件-权限被拒绝。

30

我正在使用RStudio,试图安装dplyr软件包。我已经顺利安装了其他各种软件包,但是在这个软件包遇到了问题。

安装似乎有多个部分,其中一些部分可以正常工作,但当我获取“依赖项BH”时出现了问题。这是错误信息:

>Installing package into ‘\\xxxxxxxx.local/Desktops/jagnew/My Documents/R/win-library/3.3’
    (as ‘lib’ is unspecified)
    also installing the dependency ‘BH’
    
>trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/BH_1.62.0-1.zip'
    Content type 'application/zip' length 16150075 bytes (15.4 MB)
    downloaded 15.4 MB
    
>trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/dplyr_0.5.0.zip'
    Content type 'application/zip' length 2556205 bytes (2.4 MB)
    downloaded 2.4 MB
    
>Error in install.packages : cannot open file '\\xxxxxxx.local/Desktops/jagnew/My Documents/R/win-library/3.3/file142032c9327b/BH/include/boost/function/detail/gen_maybe_include.pl': Permission denied

由于文件未下载到正确的文件夹,我已更改目录/库路径。 现在,file142032c9327b已位于正确路径中,但错误指定的路径仅正确到/boost,这里没有功能文件夹。 我不确定该缺失的文件夹是否是问题所在,因为错误显示“权限被拒绝”,但这似乎很奇怪。


4
我遇到了同样的问题,发现我的杀毒软件(Avast)阻止了对该文件的访问。一旦我告诉Avast允许访问,一切都正常了。 - Harpagus
2
如果在Windows中以管理员身份安装了R(或带有R的RStudio),并且您尝试安装或更新软件包,但缺少权限,则需要以管理员身份运行安装程序,或避免以管理员身份安装。 - R Yoda
12个回答

35
我遇到了同样的问题。尝试以下方法,对我有效:
  1. 以管理员身份运行RStudio
  2. 在“Packages”选项卡下,点击“Install”,将“Install to Library”选项更改为“C:/Program...../R/../library”,然后选择要安装的包。

输入图像描述

希望这能解决问题。

2
你如何以管理员身份运行RStudio?“Packages”选项卡在哪里?在RStudio 1.4.1103中没有这样的选项卡。 - Yozef
我还没有检查过1.4版本,但在1.3版本中,它可以在“工具”->“安装包”下找到。您可以通过右键单击exe文件并选择“以管理员身份运行”来运行它。如果可以的话,请告诉我。谢谢。 - Shubham Yadav
我已经尝试在 R 版本 4.2.1 中以管理员身份运行,但它根本没有像您在此处列出的那样给我第二个“安装到库”选项。只列出了默认目录。 - Shawn Hemelstrand

5

我遇到了同样的问题。每当我尝试安装新的或更新现有的包时,R会给我一个错误消息。我不记得消息的确切内容,但它在说“无法打开文件(...)访问被拒绝”。我尝试了以下所有方法。不确定是什么确切地解决了问题,但现在我可以更新和/或安装新的包:

  1. 以管理员身份打开R / RStudio;
  2. 更改R库文件夹(包安装位置)的安全设置,授予我的计算机用户帐户完全访问权限。链接1链接2
  3. (我认为这就是解决问题的方法)按照此链接上的说明操作。它提示我安装另一个包“devtools”。然后它就起作用了。

3
我发现它只适用于一个软件包,“lme4”。我尝试安装其他任何软件包时都遇到了同样的问题。然而,我发现上面提到的评论是解决方案:“我遇到了同样的问题,并发现我的杀毒软件(Avast)正在阻止对文件的访问。一旦我告诉Avast允许访问,一切都正常了。” - [Harpagus] (https://stackoverflow.com/users/8491365/harpagus) -- 感谢@Harpagus - SenshiKudo

3

我认为我的问题是特例,但它可能对某些人有所裨益。我将 Windows Defender Ransomware Protection 设置为ON。这默认情况下会阻止rsession.exe。允许rsession.exe可以解决这个问题。


检查是否在Windows勒索软件防护中包含了/path/R.exe。从file.path(R.home("bin"), "R")获取路径。 - ishonest

3

TL;DR

"Documents"(或"My Documents")目录是Windows中的一个特殊位置。我不知道系统本身是否以不同的方式处理其权限,或者杀毒软件是否更严格地针对此目录内部的操作,但许多R用户在此文件夹内的个人库中安装包时会遇到问题(即使以管理员身份运行R也是如此)。其他答案都没有起作用。

对我而言,解决问题的方法是将个人库直接放在X:\\Users\username\下,而不是放在默认的Documents下。为了使其永久化,我设置了一个用户环境变量R_USER%USERPROFILE%。这里有一个很好的指南,介绍了如何在Windows中设置环境变量

注意:更改后,您可能需要将您的.Rprofile.Renviron等文件从Documents移动到用户配置文件目录。


Details

在Windows上,R的用户“主目录”的默认位置是X:\\Users\username\Documents。这是因为Windows中没有HOME的概念,只有一个“个人”目录(Documents):https://cran.r-project.org/bin/windows/base/rw-FAQ.html#What-are-HOME-and-working-directories_003f

因此,默认情况下,个人库位置在X:\\Users\username\Documents\R\win-library\X.Y\下。您可以在R控制台中使用以下命令获取您机器上的确切位置:

Sys.getenv('R_LIBS_USER')

当我尝试安装或更新软件包时,即使以管理员身份运行,也会出现相同的“无法打开文件”错误。我怀疑是目录权限问题,但在目录的“属性”中检查后并没有解决。我删除了整个R\win-library目录树并重新创建它,但仍然出现错误...最后,我尝试将个人库位置移动到我的用户目录:

.libPaths('X://Users/username/R/win-library/X.Y/')

它起作用了!


2
Warning in install.packages :
  cannot create file '/usr/local/Cellar/r/3.6.2/lib/R/doc/html/packages.html', reason 'Permission denied'
Warning in install.packages :
  cannot update HTML package index

当我尝试下载一个名为ISLR的pkg时,遇到了相同的权限问题。按照上面的答案后问题得到解决。

如果有一些像我一样不熟悉R studio的人,这是我安装pkg的步骤:

  1. 在R studio中,在Console旁边点击Terminal

  2. 输入sudo r,以管理员身份运行r

  3. install.packages("ISLR")安装您的包

--- Please select a CRAN mirror for use in this session ---
https://cran.rstudio.com/src/contrib/ISLR_1.2.tar.gz
Secure CRAN mirrors

 1: 0-Cloud [https]                   2: Australia (Canberra) [https]
 3: Australia (Melbourne 1) [https]   4: Australia (Melbourne 2) [https]
  1. 选择一个镜像站点,然后点击进入。

完成!软件包已安装。


这对我有用!谢谢! - undefined

0

这个过程对我有效。

  • 使用remove.packages()删除现有的包
  • 以管理员身份运行RStudio
  • 通过指定libpath安装:devtools::install_github('https://github.com/Rdatatable/data.table/tree/frollmax', lib=.libPaths()[2])

0
我遇到的解决方法是在库目录中手动删除更新出问题的文件夹,然后再次运行 install.package()。

0

我也遇到了这个问题。唯一帮助我的解决方案是关闭防火墙。然后我就能够下载所有的软件包了。


0
在管理员模式下运行 R 并禁用防病毒软件后,我的问题得到了解决。

0

将 @Shubham Yadav 的答案转换成代码模式,大概是这样的:install.packages("your_package", lib = "C:/Program Files/R/R-4.0.3/library")

对于我来说,它是可行的(以管理员身份运行 RStudio,当然)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接