Bjö*_*örn 5 ubuntu r 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’
Run Code Online (Sandbox Code Playgroud)
我试图解决这个问题的事情:
dependencies = T参数install.packages("pkgload")导致几乎完全相同的错误(见下文)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
Run Code Online (Sandbox Code Playgroud)
我对pkgload进行了更深入的研究(至少我希望这是问题的唯一原因)。我将检查手动(重新)安装所有导入和来自 pkgload 的 CRAN 页面的建议是否确实解决了它。
导入: desc、methods、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
Run Code Online (Sandbox Code Playgroud)
我仍然拒绝相信在 ubuntu20 上安装 devtools 是不可能的
但是在这一点上我采取任何措施
简而言之,为我解决问题的是之前安装了 testthat 包。感谢rui-barradas 的评论
install.packages("testthat")
install.packages("pkgload")
install.packages("devtools")
Run Code Online (Sandbox Code Playgroud)
我也在 Ubuntu 20.04 但运行 R 4.0.0。
\n\n尝试安装某个软件包时,如果它依赖于 R 4.0.0 之前安装的另一个软件包,我会收到一条错误消息,并且安装失败。即使我dependencies = TRUE在调用中设置,也会发生这种情况install.packages也会发生这种情况。
例子:命令是
\n\ninstall.packages('pkgload')\nRun Code Online (Sandbox Code Playgroud)\n\n我省略了第一行输出,表示文件已下载。然后是相关部分。
\n\n\n\n\n\n
\n- 正在安装源包 \xe2\x80\x98pkgload\xe2\x80\x99 ...
\n
\n ** 包 \xe2\x80\x98rcmdcheck\xe2\x80\x99 成功解压并检查 MD5 和
\n ** 使用分阶段安装
\n ** R
\n ** 字节编译并准备延迟加载包错误:package \xe2\x80\x98testthat\xe2\x80\x99 是在 R 4.0.0 之前安装的:请重新安装它
\n 执行停止错误:程序包 \xe2\x80\x98pkgload\xe2\x80\x99 延迟加载失败- 删除 \xe2\x80\x98/usr/local/lib/R/site-library/pkgload\xe2\x80\x99
\n- 恢复以前的 \xe2\x80\x98/usr/local/lib/R/site-library/pkgload\xe2\x80\x99 install.packages 中的警告:安装包 \xe2\x80\x98pkgload\xe2\x80\x99 已\n 非零退出状态 下载的源码包在
\n
\n \xe2\x80\x98/tmp/RtmpVxpbs0/downloaded_packages\xe2\x80\x99
正确的方法。
\n安装包的正确方法pkgload是运行序列
install.packages('testthat')\ninstall.packages('pkgload')\nRun Code Online (Sandbox Code Playgroud)\n\n问题就解决了。
\n\n请注意,对于其他软件包,它已经碰巧发现这是一个递归问题。想象一下那个包裹testthat依赖于(但事实并非如此)R 4.0.0 之前安装的另一个软件包。
烦人但可以解决。
\n\nsessionInfo() \n#R version 4.0.0 (2020-04-24) \n#Platform: x86_64-pc-linux-gnu (64-bit) \n#Running under: Ubuntu 20.04 LTS \n# \n#Matrix products: default \n#BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0 \n#LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0 \n# \n#locale: \n# [1] LC_CTYPE=pt_PT.UTF-8 LC_NUMERIC=C \n#[3] LC_TIME=pt_PT.UTF-8 LC_COLLATE=pt_PT.UTF-8 \n# [5] LC_MONETARY=pt_PT.UTF-8 LC_MESSAGES=pt_PT.UTF-8 \n# [7] LC_PAPER=pt_PT.UTF-8 LC_NAME=C \n# [9] LC_ADDRESS=C LC_TELEPHONE=C \n#[11] LC_MEASUREMENT=pt_PT.UTF-8 LC_IDENTIFICATION=C \n# \n#attached base packages: \n#[1] stats graphics grDevices utils datasets \n#[6] methods base \n# \n#other attached packages: \n#[1] rvest_0.3.5 xml2_1.3.2 data.table_1.12.8 \n#\n#loaded via a namespace (and not attached): \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |