在CentOS Linux 7.4上,无法安装R包“httpuv”

时间:2018-05-12 00:19:39

标签: r centos

我目前正在使用CentOS Linux 7.4.1708(Core)。我试图通过各种方法在httpuv中安装包R无济于事。它始终以错误结束:

  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’

有没有人想过这里发生了什么?感谢。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

该错误表明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,这对于解决此类依赖性问题非常有用。人们有类似于为你准备的conda-packages,它提供了所有的包依赖。

$ conda install -c conda-forge r-httpuv

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