【问题标题】:Can't install the caret package in R (in my Linux machine)无法在 R 中安装插入符号包(在我的 Linux 机器中)
【发布时间】:2021-03-02 20:28:14
【问题描述】:

我在尝试在 R 中安装 caret 包时遇到以下错误。

     g++: error: /tmp/Rtmp2Tos7n/R.INSTALL2e6e30153a74/nloptr/nlopt-2.4.2/lib/libnlopt_cxx.a: 
No such file or directory make: *** [nloptr.so] Error 1
    
    ERROR: compilation failed for package ‘nloptr’
    * removing ‘/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/nloptr’
    Warning in install.packages :
      installation of package ‘nloptr’ had non-zero exit status
    ERROR: dependency ‘nloptr’ is not available for package ‘lme4’
    * removing ‘/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/lme4’
    Warning in install.packages :
      installation of package ‘lme4’ had non-zero exit status
    ERROR: dependency ‘lme4’ is not available for package ‘pbkrtest’
    * removing ‘/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/pbkrtest’
    Warning in install.packages :
      installation of package ‘pbkrtest’ had non-zero exit status
    ERROR: dependency ‘lme4’ is not available for package ‘BradleyTerry2’
    * removing ‘/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/BradleyTerry2’
    Warning in install.packages :
      installation of package ‘BradleyTerry2’ had non-zero exit status
    ERROR: dependency ‘pbkrtest’ is not available for package ‘car’
    * removing ‘/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/car’
    Warning in install.packages :
      installation of package ‘car’ had non-zero exit status
    ERROR: dependencies ‘car’, ‘BradleyTerry2’ are not available for package ‘caret’
    * removing ‘/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/caret’
    Warning in install.packages :
      installation of package ‘caret’ had non-zero exit status
    
    The downloaded source packages are in
        ‘/tmp/RtmpG9dYqn/downloaded_packages’

我查看了另一个有类似问题的问题

Dependency issue while installing caret package in R

解决这个问题的方法是先安装每个依赖项,但它们都有相同的错误消息。例如:

>install.packages('nloptr')

g++: error: /tmp/RtmpgEn54A/R.INSTALL7015350f0d03/nloptr/nlopt-2.4.2/lib/libnlopt_cxx.a: No such file or directory
make: *** [nloptr.so] Error 1
ERROR: compilation failed for package ‘nloptr’
* removing ‘/rmt/csfiles/pgrads/mava290/R/x86_64-suse-linux-gnu-library/3.1/nloptr’
Warning in install.packages :
  installation of package ‘nloptr’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpG9dYqn/downloaded_packages’

我还尝试更改 repos 即。 install.packages('caret', repos='http://cran.rstudio.com/') 但它也不起作用。

我的会话信息如下:

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-suse-linux-gnu (64-bit)

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

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

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

【问题讨论】:

  • 你是不是先安装了nlopt库的头文件?
  • @Pascal:我尝试使用命令install.packages("nloptr", repos="http://R-Forge.R-project.org") 按照本网站r-forge.r-project.org/R/?group_id=933 中给出的方式安装它。这还不够吗?我用的是linux
  • 不,如果您没有在 Linux 系统中安装 nlopt 库的头文件,则不会。
  • 在我的机器(Linux Debian)上,有一个 libnopt-dev 包。我相信这是导致编译失败的原因,您必须在安装 R 包之前安装它(使用 YaST 等包管理器,而不是 R)。
  • 尝试 sudo apt-get install r-cran-caret 。如果您无法弄清楚其他情况,这可能会为您安装依赖项。

标签: linux r gnu suse r-caret


【解决方案1】:

我最近也遇到了 nlopt 的问题。通过从 YaST(或您首选的包管理器)安装 nlopt-devel 及其相关依赖项很容易解决。

【讨论】:

    【解决方案2】:

    我希望先添加评论。 2015 年 1 月 28 日,github 中的 nloptr 包中有一个 addition,它可能会破坏编译。我通过使用命令从旧版本安装来使用解决方法

    install.packages("http://cran.r-project.org/src/contrib/Archive/nloptr/nloptr_1.0.0.tar.gz",
                     repos=NULL, type="source")
    

    【讨论】:

      【解决方案3】:

      如本 R 帮助论坛中所述:

      http://r.789695.n4.nabble.com/can-t-install-rugarch-and-nloptr-packages-in-R-3-01-opensuse-linux-td4669649.html

      将该行添加到 src/Makevars 文件中

           mv .libs lib; \
      

      之间

           make install; \
           ls | grep -v ^include$$ | grep -v ^lib$$ | xargs rm -rf; \
      

      这将消除编译错误,您将能够安装 nloptr 包。我已经为 nloptr_1.0.0.tar.gz 测试了这个。

      【讨论】:

        【解决方案4】:

        我通过从突触安装第一个“汽车”来解决这个问题(使用带有“cran-car”的过滤器)。 然后我用 rstudio 安装“插入符号”,但我想它也适用于 R。 希望能帮助到你, 问候

        【讨论】:

          猜你喜欢
          • 2019-04-15
          • 1970-01-01
          • 2015-07-13
          • 1970-01-01
          • 1970-01-01
          • 2018-02-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多