首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu 18.04 &R 4.0.2上安装tidyr时出错

在Ubuntu 18.04 &R 4.0.2上安装tidyr时出错
EN

Stack Overflow用户
提问于 2020-08-10 21:15:27
回答 4查看 1.6K关注 0票数 13

在尝试安装包tidyverse时,在安装依赖项tidyr时会出现错误。

下面是我得到的信息的尾部:

代码语言:javascript
复制
cpp11.cpp:31:100: error: ‘unmove’ is not a member of ‘cpp11’
     return cpp11::as_sexp(simplifyPieces(cpp11::unmove(cpp11::as_cpp<cpp11::list>(pieces)), cpp11::unmove(cpp11::as_cpp<int>(p)), cpp11::unmove(cpp11::as_cpp<bool>(fillLeft))));
                                                                                                    ^~~~~~
cpp11.cpp:31:138: error: ‘unmove’ is not a member of ‘cpp11’
     return cpp11::as_sexp(simplifyPieces(cpp11::unmove(cpp11::as_cpp<cpp11::list>(pieces)), cpp11::unmove(cpp11::as_cpp<int>(p)), cpp11::unmove(cpp11::as_cpp<bool>(fillLeft))));
                                                                                                                                          ^~~~~~
/usr/lib/R/etc/Makeconf:176: recipe for target 'cpp11.o' failed
make: *** [cpp11.o] Error 1
ERROR: compilation failed for package ‘tidyr’
* removing ‘/home/xxx/yyy/tidyr’
Warning in install.packages :
  installation of package ‘tidyr’ had non-zero exit status

在我天真的眼里,这似乎是cpp11的问题。我看到了一个关于cpp11编译错误(R tidyr package installation failed due to cpp11 compilation error (expansion pattern x contains no argument packs))导致的to安装错误的类似问题,但这是针对一个RHEL系统的。

我的系统上安装了gcc/c++的最新版本(4:7.4.0-1ubuntu2.3)。还安装了系统依赖项libcurl4-openssl-dev libssl-dev libxml2-dev的最新版本。

这是sessionInfo()的输出

代码语言:javascript
复制
R version 4.0.2 (2020-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.5 LTS

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

locale:
 [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C               LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8     LC_MONETARY=en_CA.UTF-8    LC_MESSAGES=en_CA.UTF-8   
 [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C       

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

loaded via a namespace (and not attached):
 [1] rstudioapi_0.11   magrittr_1.5      usethis_1.6.1     devtools_2.3.1    pkgload_1.1.0     R6_2.4.1          rlang_0.4.7       fansi_0.4.1       tools_4.0.2      
[10] pkgbuild_1.1.0    sessioninfo_1.1.1 cli_2.0.2         withr_2.2.0       ellipsis_0.3.1    remotes_2.2.0     assertthat_0.2.1  digest_0.6.25     rprojroot_1.3-2  
[19] crayon_1.3.4      processx_3.4.3    callr_3.4.3       fs_1.5.0          ps_1.3.3          curl_4.3          testthat_2.3.2    memoise_1.1.0     glue_1.4.1       
[28] compiler_4.0.2    desc_1.2.0        backports_1.1.8   prettyunits_1.1.1
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-08-11 00:22:33

下面的提交解决了这个问题,但不确定何时将其推送到CRAN:https://github.com/r-lib/cpp11/commit/779669a4d0b07e9f9d9382114f44e4f6ff68eebb

票数 2
EN

Stack Overflow用户

发布于 2020-08-10 22:58:05

看起来@hadley几天前根据新的cpp11包https://github.com/tidyverse/tidyr/releases发布了对tidyr的更新。

由于某些原因,这导致了tidyr不为我们构建。

我们的(希望是暂时的)解决办法是这样的:

(1)消除对tidyverse的依赖。相反,显式地依赖于子包(比如dplyr/ggplot2 2/等等)。

(2)以下列方式安装tidyr:

代码语言:javascript
复制
packageurl <- "https://cran.r-project.org/src/contrib/Archive/tidyr/tidyr_1.1.0.tar.gz"
install.packages(packageurl, repos=NULL, type="source")
票数 6
EN

Stack Overflow用户

发布于 2020-08-11 01:18:41

我在这里发现了以下内容:https://github.com/tidyverse/tidyr/issues/1024

解决方法包括将cpp11降级为0.1版:

代码语言:javascript
复制
devtools::install_version("cpp11", version = "0.1", repos = "http://cran.us.r-project.org")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63348135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档