R devtools 无法安装 - Ubuntu 20.04 - ‘pkgload’ 的包或命名空间加载失败
R devtools unable to install - Ubuntu 20.04 - package or namespace load failed for ‘pkgload’
我非常想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’
我尝试解决的问题:
- 添加
dependencies = T
参数
- 遵循 hadley wickham 在 github 上的建议 -> 更新 rlang 包
- 尝试 运行
install.packages("pkgload")
导致几乎完全相同的错误(见下文)
- 完全删除 R 并重新安装
- 另外安装以下软件包:
- r-base-dev
- r-cran-devtools
- r-推荐
- 更新了所有包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 页面建议是否解决了问题。
Imports: desc, methods, pkgbuild, rlang, rprojroot, rstudioapi,
utils, withr
Suggests: 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")
我也在 Ubuntu 20.04 但 运行ning R 4.0.0.
当尝试安装一个包时,如果它依赖于在 R 4.0.0 之前安装的另一个包,我会收到一条错误消息并且安装失败。即使我在对 install.packages
的调用中设置了 dependencies = TRUE
,也会发生这种情况。
示例: 命令是
install.packages('pkgload')
我省略了第一行输出,表示文件已下载。然后是相关部分。
- installing source package ‘pkgload’ ...
** package ‘rcmdcheck’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** byte-compile and prepare package for lazy loading Error: package ‘testthat’ was installed before R 4.0.0: please re-install it
Execution halted ERROR: lazy loading failed for package ‘pkgload’
- removing ‘/usr/local/lib/R/site-library/pkgload’
- restoring previous ‘/usr/local/lib/R/site-library/pkgload’ Warning in install.packages : installation of package ‘pkgload’ had
non-zero exit status The downloaded source packages are in
‘/tmp/RtmpVxpbs0/downloaded_packages’
正确的方法。
安装包 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):
我遇到了同样的问题,至少在我的情况下,解决方案是 Ubuntu 20.04.1 LTS (Focal Fossa) + R 4.0.2:
首先(从终端),安装:
第一步:sudo apt-get update -y
第 2 步:sudo apt-get install -y libxml2-dev
然后从 RStudio(先设置存储库,然后选择 8 个存储库)并安装两个包:
安装 xml2 包
安装开发工具
对我有用。
我非常想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’
我尝试解决的问题:
- 添加
dependencies = T
参数 - 遵循 hadley wickham 在 github 上的建议 -> 更新 rlang 包
- 尝试 运行
install.packages("pkgload")
导致几乎完全相同的错误(见下文) - 完全删除 R 并重新安装
- 另外安装以下软件包:
- r-base-dev
- r-cran-devtools
- r-推荐
- 更新了所有包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 页面建议是否解决了问题。
Imports: desc, methods, pkgbuild, rlang, rprojroot, rstudioapi, utils, withr
Suggests: 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")
我也在 Ubuntu 20.04 但 运行ning R 4.0.0.
当尝试安装一个包时,如果它依赖于在 R 4.0.0 之前安装的另一个包,我会收到一条错误消息并且安装失败。即使我在对 install.packages
的调用中设置了 dependencies = TRUE
,也会发生这种情况。
示例: 命令是
install.packages('pkgload')
我省略了第一行输出,表示文件已下载。然后是相关部分。
- installing source package ‘pkgload’ ...
** package ‘rcmdcheck’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** byte-compile and prepare package for lazy loading Error: package ‘testthat’ was installed before R 4.0.0: please re-install it
Execution halted ERROR: lazy loading failed for package ‘pkgload’- removing ‘/usr/local/lib/R/site-library/pkgload’
- restoring previous ‘/usr/local/lib/R/site-library/pkgload’ Warning in install.packages : installation of package ‘pkgload’ had non-zero exit status The downloaded source packages are in
‘/tmp/RtmpVxpbs0/downloaded_packages’
正确的方法。
安装包 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):
我遇到了同样的问题,至少在我的情况下,解决方案是 Ubuntu 20.04.1 LTS (Focal Fossa) + R 4.0.2:
首先(从终端),安装:
第一步:sudo apt-get update -y
第 2 步:sudo apt-get install -y libxml2-dev
然后从 RStudio(先设置存储库,然后选择 8 个存储库)并安装两个包:
安装 xml2 包
安装开发工具
对我有用。