【问题标题】:R devtools unable to install - Ubuntu 20.04 - package or namespace load failed for ‘pkgload’R devtools 无法安装 - Ubuntu 20.04 - 'pkgload' 的包或命名空间加载失败
【发布时间】:2020-08-21 21:48:43
【问题描述】:

我非常渴望install.packages("devtools")。 但是它总是会因为这个错误而失败

Error: .onLoad failed in loadNamespace() for 'pkgload', details:
  call: readRDS(nsInfoFilePath)
  error: error reading from connection
Execution halted
ERROR: lazy loading failed for package ‘devtools’
* removing ‘/home/bjoern/R/x86_64-pc-linux-gnu-library/3.6/devtools’

我试图解决的问题:

  1. 添加dependencies = T 参数
  2. 根据 hadley wickham 在 github 上的建议 -> 更新 rlang 包
  3. 尝试运行 install.packages("pkgload") 导致几乎完全相同的错误(见下文)
  4. 完全删除 R 并重新安装它
  5. 另外安装以下软件包:
    • r-base-dev
    • r-cran-devtools
    • r-推荐
  6. 更新了所有包 update.packages(ask = FALSE, checkBuilt = TRUE)

install.packages("pkgload") 出错

Error: package or namespace load failed for ‘pkgload’:
 .onLoad failed in loadNamespace() for 'pkgload', details:
  call: readRDS(nsInfoFilePath)
  error: error reading from connection
Error: loading failed
Execution halted
ERROR: loading failed

我更深入地研究了pkgload(至少我希望这是问题的唯一原因)。我将检查是否手动(重新)安装所有导入并从 pkgload 的 CRAN 页面提出建议并解决它。

导入: desc、方法、pkgbuild、rlang、rprojroot、rstudioapi、 utils, withr
建议: bitops, covr, Rcpp, testthat


我的sessionInfo() 输出:
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=de_DE.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.6.3 tools_3.6.3

我仍然拒绝相信在 ubuntu20 上安装 devtools 是不可能的
但是在这一点上,我会采取任何稻草

解决方案编辑:

简而言之,为我解决问题的是之前安装了 testthat 包。感谢rui-barradas的评论

install.packages("testthat") 
install.packages("pkgload") 
install.packages("devtools") 

【问题讨论】:

  • "我仍然拒绝相信在 ubuntu20 上安装 devtools 是不可能的" 好!我确定可以在 Ubuntu 20.04 上安装 devtools,因为我已经在 20.04 上安装了它!但是,我的 R 版本是 4.0.0,所以可能会有一些差异。这似乎是一个潜在的难以调试的问题。您可能需要确保没有安装 R 包(即删除 r-cran-devtools 和您的 /home/user/R/ 文件夹中的所有包),然后从 just install.packages("pkgload") 开始
  • @duckmayr 同样在这里,Ubuntu 20.04/R4.0.0 一切都很顺利。问题是我必须手动安装在 4.0.0 之前已经安装的每个依赖项。意思是,在安装 pkgload 之前,我必须运行 install.packages('testthat')
  • 如果/当您apt-get install r-cran-devtools(根据 CRAN 站点上的 Ubuntu 特定说明将 Michael Rutter 的 PPA 添加到您的存储库列表之后),它是否有效?这应该足以安装软件包的二进制版本(尽管我很想知道为什么您在从源代码安装时遇到问题)
  • @RuiBarradas 哇,修复了它。之前只需要手动安装install.packages('testthat')。现在pkgload 可以用作魅力,并且 devtools 也已成功安装。看起来 github 上已经有一个 issue
  • 你想把这个总结为答案吗?其他人可能会遇到同样的情况? @RuiBarradas

标签: r ubuntu github devtools


【解决方案1】:

我遇到了同样的问题,至少在我的情况下,解决方案是 Ubuntu 20.04.1 LTS (Focal Fossa) + R 4.0.2:

首先(从终端),安装:

第 1 步:sudo apt-get update -y
第 2 步:sudo apt-get install -y libxml2-dev

然后从 RStudio(首先设置存储库,然后选择 8 个存储库)并安装两个包:

  1. 安装xml2包

  2. 安装开发工具

对我有用。

【讨论】:

    【解决方案2】:

    我也在 Ubuntu 20.04 上,但运行的是 R 4.0.0。

    当尝试安装一个包时,如果它依赖于 R 4.0.0 之前安装的另一个包,我会收到一条错误消息并且安装失败。即使我在对install.packages 的调用中设置dependencies = TRUE,也会发生这种情况。

    示例:命令是

    install.packages('pkgload')
    

    我省略了第一行输出,表示文件已下载。然后是相关部分。

    • 正在安装源代码包“pkgload”...
      ** 包 ‘rcmdcheck’ 成功解包并检查了 MD5 和
      ** 使用分阶段安装
      ** R
      ** 字节编译并为延迟加载准备包错误:包'testthat'是在 R 4.0.0 之前安装的:请重新安装它
      执行停止错误:包“pkgload”的延迟加载失败
    • 删除“/usr/local/lib/R/site-library/pkgload”
    • 在 install.packages 中恢复以前的“/usr/local/lib/R/site-library/pkgload”警告:安装包“pkgload”有 非零退出状态 下载的源包在
      ‘/tmp/RtmpVxpbs0/downloaded_pa​​ckages’

    正确的方式。
    安装包pkgload的正确方法是运行序列

    install.packages('testthat')
    install.packages('pkgload')
    

    问题就解决了。

    注意,对于其他包,它已经碰巧看到这是一个递归问题。想象一下,包testthat 依赖于(它不依赖于)在 R 4.0.0 之前安装的另一个包。

    烦人但可以解决。

    sessionInfo()  
    #R version 4.0.0 (2020-04-24)  
    #Platform: x86_64-pc-linux-gnu (64-bit)  
    #Running under: Ubuntu 20.04 LTS  
    #  
    #Matrix products: default  
    #BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0  
    #LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0  
    #  
    #locale:  
    # [1] LC_CTYPE=pt_PT.UTF-8       LC_NUMERIC=C                
    #[3] LC_TIME=pt_PT.UTF-8        LC_COLLATE=pt_PT.UTF-8      
    # [5] LC_MONETARY=pt_PT.UTF-8    LC_MESSAGES=pt_PT.UTF-8     
    # [7] LC_PAPER=pt_PT.UTF-8       LC_NAME=C                   
    # [9] LC_ADDRESS=C               LC_TELEPHONE=C                
    #[11] LC_MEASUREMENT=pt_PT.UTF-8 LC_IDENTIFICATION=C           
    #  
    #attached base packages:  
    #[1] stats     graphics  grDevices utils     datasets   
    #[6] methods   base       
    #  
    #other attached packages:  
    #[1] rvest_0.3.5       xml2_1.3.2        data.table_1.12.8  
    #
    #loaded via a namespace (and not attached):  
    

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多