【问题标题】:On CentOS Linux 7.4, cannot install the R package "httpuv"在 CentOS Linux 7.4 上,无法安装 R 包“httpuv”
【发布时间】:2018-05-12 12:20:28
【问题描述】:

我目前使用的是 CentOS Linux 7.4.1708 (Core)。我曾尝试通过各种方法在R 中安装包httpuv,但均无济于事。它总是以错误结束:

  CC       src/unix/libuv_la-procfs-exepath.lo
  CC       src/unix/libuv_la-proctitle.lo
  CC       src/unix/libuv_la-sysinfo-loadavg.lo
  CC       src/unix/libuv_la-sysinfo-memory.lo
  CCLD     libuv.la
libtool:   error: require no space between '-L' and '-L/n/helmod/apps/centos7/Core/pcre/8.37-fasrc02/lib'
make[1]: *** [libuv.la] Error 1
make[1]: Leaving directory `/tmp/Rtmp5Dj7hL/R.INSTALL5c046d96dc92/httpuv/src/libuv'
make: *** [libuv/.libs/libuv.a] Error 2
ERROR: compilation failed for package ‘httpuv’

有人对这里发生的事情有任何想法吗?谢谢。

【问题讨论】:

标签: r centos


【解决方案1】:

前面的答案部分正确,因为它将libuv 标识为缺少的依赖项。

在 CentOS 7 中,您可以使用 yum install libuv-devel 添加它,然后尝试使用 install.packages("httpuv") 再次安装该软件包,如果这是您唯一的问题,它应该可以正确编译。

【讨论】:

  • libuv 在默认的 CentOS 7 软件包中不可用,所以我需要先启用 EPEL 存储库:yum install epel-release
  • 或者这样做yum --enablerepo=epel install libuv-devel
【解决方案2】:

该错误表示 libuv.la 中存在库错误。 cc 和 CCLD 命令显示这是一个编译错误 - 很可能是在尝试编译 libuv.la 时抛出的 gcc。

在 ubuntu linux 中,我会看看这种情况:

$ apt search httpuv
# which gives:
# r-cran-httpuv

大多数需要其他系统依赖项的 R 包(R 之外的库等)大多在 apt 存储库中有一个包。

那么你就简单地做:

$ sudo apt install r-cran-httpuv

然后每个依赖问题都得到解决(尽管可能是 R 要求您在安装后更新/升级您的包 - 这有时有效但有时无效)。

我在看 CentOS 是否可以使用apthttps://everyday-tech.com/apt-get-on-centos/

您的另一种可能性是使用 conda,它可以很好地解决此类依赖问题。然后,人们为您准备了类似于 apt 的 conda-packages,它提供了所有包依赖项。

$ conda install -c conda-forge r-httpuv

如果你不知道 conda,我强烈推荐你这个教程: https://www.youtube.com/watch?v=YJC6ldI3hWk(来自 Corey Schafer,他提供了很棒的 - 主要是 Python - 教程)。

【讨论】:

    猜你喜欢
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2016-10-15
    • 2015-01-03
    • 1970-01-01
    • 2017-03-11
    • 2016-10-28
    相关资源
    最近更新 更多