我目前正在使用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’
有没有人想过这里发生了什么?感谢。
答案 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是否可以使用apt
:
https://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教程)。