【问题标题】:unable to install R package "nloptr" (R3.6.2 on Ubuntu 16.04) - C++ compiler issue无法安装 R 包“nloptr”(Ubuntu 16.04 上的 R3.6.2)- C++ 编译器问题
【发布时间】:2020-02-06 13:42:25
【问题描述】:

在 Ubuntu 16.04 上将 R 升级到 3.6.2(从 3.4)后,由于(至少一个)依赖项 (nloptr) 也无法安装,我无法安装“汽车”包。这似乎是 C++ 编译器的问题(它使用了一些已弃用的“配置”设置,但我在试图解决这个问题时迷路了)。

我在 R 中(从终端)调用了以下命令:

install.packages("nloptr")

错误信息:

Installing package into ‘/home/heike/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
trying URL 'https://ftp.fau.de/cran/src/contrib/nloptr_1.2.1.tar.gz'
Content type 'application/x-gzip' length 2448313 bytes (2.3 MB)
==================================================
downloaded 2.3 MB
* installing source package ‘nloptr’ ...
** package ‘nloptr’ successfully unpacked and MD5 sums checked
** using staged installation
'config' variable 'CPP' is deprecated
'config' variable 'CXXCPP' is deprecated
checking whether the C++ compiler works... no
configure: error: in /tmp/RtmpPLaJFA/R.INSTALL5e5ed06eeac/nloptr': configure: error: C++ compiler cannot create executables See config.log' for more details
ERROR: configuration failed for package ‘nloptr’

目前采取的步骤

  • 更改了 CRAN 镜像和 source.list 条目
  • 卸载并重新安装 R 3.6.2(也在不同的机器上),同样的问题仍然存在

系统信息

  • 操作系统版本:Ubuntu 16.04 (x86_64-pc-linux-gnu (64-bit))
  • R 版本:3.6.2 (2019-12-12)

【问题讨论】:

  • config.log的内容是什么?
  • 我不知道在哪里可以找到 config.log - 它没有给我目录。 >> find -iname config.log 查找许多与 R 无关的日志文件。

标签: c++ r ubuntu package


【解决方案1】:

我们做了很多工作来使 nloptr 安装更好。本质上,您有多种选择:

  • 如果存在 nlopt 库的系统版本,请使用它——这是最简单的,因此请尝试通过sudo apt-get install libnlopt-dev 安装它,然后重新安装

  • 如果找不到,则会下载源代码和构建版本,这似乎在您将近四年前的 Ubuntu 系统上失败了,因为它很难支持所有风格 --- 但这很有效在较新的版本上(我也运行 Ubuntu,但目前是 19.10)

  • 有适合​​您的二进制文件,请参阅 Ubuntu packages page - 但是这些可能与您当前的 R 版本不匹配,这与您的发行版 R 版本不匹配

  • 取决于您从哪里获得 R(您是否安装了 .deb?)您可以使用 Michael Rutter PPA 获取 当前 r-cran-nloptr

所有这些也可以在 r-sig-debian list for R on Debian 和 Ubuntu 上详细讨论。

编辑:回应以下评论:

  • 要查看apt 知道什么包,请执行apt-cache policy r-cran-nloptr。根据我上面给出的链接,我们知道Ubuntu 有一个r-cran-nloptr 用于您的(非常旧的)Xenial 安装。但是,它会与您正在运行的非常新的和当前的 R 发生冲突。比如混搭的成本。

  • 要访问 Rutter PPA 及其四千多个当前二进制文件,请参阅Ubuntu at CRAN README 顶部的第四段

编辑 2: 我可能太悲观了。当前 R 二进制文件的 Rutter PPA 具有可信赖的、xenial 和仿生的。见https://launchpad.net/~marutter/+archive/ubuntu/c2d4u3.5

【讨论】:

  • 谢谢。我安装了系统版本,但问题仍然存在。我将 R 安装为:sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys E084DAB9 sudo add-apt-repository 'deb https://ftp.ussg.iu.edu/CRAN/bin/linux/ubuntu xenial/' sudo apt-get update sudo apt-get install r-base sudo apt-get install r-base-dev 我不确定你的最后两个 cmets。您能否就如何使用二进制文件/M.R. 的 PPA 解决我的问题提供更具体的提示?
  • 我从你的回答中了解到,最干净的方法是升级 Ubuntu(我计划在 20.04 LTS 发布时这样做,因为所有其他程序(主要是 conda/python)都运行得很好,而你知道升级 Ubuntu 会是什么样子 :) )。非常感谢您的帮助。
  • 是的,我尽量保持礼貌,但(对于我们志愿者)很难支持多种口味。 Michael 提供了一个 fantastic 服务,提供超过 4k 的二进制文件,我(个人而言)认为最新的 LTS 是最好的。但我刚查了一下,他似乎支持可信赖、审慎和仿生。所以你也可以在那里得到r-cran-nloptr。如果可以的话,我仍然建议升级到 18.04,然后可能在今年晚些时候升级到 20.04 :-)
  • 好吧,酷!明天我会尝试从 Rutter 的 PPA 安装,如果它解决了问题,我会告诉你(如果没有,我保证我会升级!)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 2021-11-25
  • 2016-11-27
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多