R devtools无法安装-Ubuntu 20.04-“ pkgload”

时间:2020-05-06 19:18:27

标签: r ubuntu github devtools

我非常渴望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(询问=否,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") 

2 个答案:

答案 0 :(得分:4)

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

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

示例:命令是

install.packages('pkgload')

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

  • 正在安装 source 软件包“ pkgload” ...
    **软件包“ rcmdcheck”已成功解压,并检查了MD5总和
    **使用分阶段安装
    ** R
    **进行字节编译并准备用于延迟加载的软件包错误:R 4.0.0之前安装的软件包“ testthat”:请重新安装
    执行停止错误:“ 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):  

答案 1 :(得分: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(首先设置setRepositories,然后选择8个存储库)并安装两个软件包:

  1. 安装xml2软件包

  2. 安装devtools

为我工作。