我正在尝试从启用了cairo支持的源代码编译R 3.1.1。我想要这个,因为我试图在没有图形环境的服务器上运行R(因此没有X11),但仍然输出PNG。
我尝试使用
配置R../configure --with-x=no --with-cairo=yes --with-libpng=yes --enable-R-shlib --prefix=$HOME
这样做会生成一个没有png或cairo支持的R二进制文件(由capabilities()
证明)。在config.log
中,有以下内容。
configure:31563: checking for X
configure:31749: result: disabled
configure:32420: result: using X11 ... no
configure:32530: checking whether pkg-config knows about cairo and pango
configure:32542: result: yes
configure:32576: checking whether cairo including pango is >= 1.2 and works
configure:32599: gcc -std=gnu99 -o conftest -g -O2 -fpic -I/usr/local/include -pthread -I/home/rmccloskey/include/pango-1.0 -I/home/rmccloskey/include/cairo -I/home/rmccl
oskey/include/glib-2.0 -I/home/rmccloskey/lib/glib-2.0/include -I/home/rmccloskey/include/pixman-1 -I/usr/include/freetype2 -I/home/rmccloskey/include/freetype2 -I/home/rmc
closkey/include/libpng16 -L/usr/local/lib64 conftest.c -lrt -ldl -lm -L/home/rmccloskey/lib -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lpng16 -lz -lcairo >
&5
conftest.c:232:24: fatal error: cairo-xlib.h: No such file or directory
#include <cairo-xlib.h>
^
compilation terminated.
正如你所看到的,configure知道cairo和pango,它也知道我没有使用X11。但是它仍然试图编译一个需要cairo-xlib.h
的文件?我能在这做什么?
答案 0 :(得分:2)
我已经能够使用CentOS-6.5和R-3.1.2完成这项工作。我不得不首先安装cairo和pango。这是我的configure命令:
./ configure --with-recommended-packages = no --without-x --with-cairo --with-libpng --with-libtiff --with-jpeglib --enable-R-shlib
答案 1 :(得分:1)
在最狭隘的意义上,开罗似乎需要x11标头。
从更广泛的意义上讲,查看详细介绍xvfb
虚拟x11服务器使用的各种答案 - 它们允许您无头使用。
此外,您可以尝试在没有x11,png,cairo的情况下构建 - 然后使用CRAN的两个cairo包中的一个来创建图形。在Debian / Ubuntu中,我们还为您预先构建了cairoDevice个包。
答案 2 :(得分:0)
我确实遇到了一些问题。我通过使用下面非常强硬的方式解决了这个问题。
在R.x.y.z src目录中,编辑配置文件。有一条线:
#include <cairo-xlib.h>
我只是删除了这一行。然后运行此文件并制作。一切都适合我。我的cairo编译时支持x11。因为我在共享的RHEL6盒子上。我做任何事都没有根。我这样做的目的是让R与Jupyter笔记本一起工作。除此之外,我还需要在options(bitmapType='cairo')
中添加$HOME/.Rprofile
。这个Link非常有用。
通过做所有这些黑客攻击,现在一切都适合我。 :)
答案 3 :(得分:0)
我遇到了类似的问题。 PNG、TIFF 和 Cairo 被跳过。有什么建议吗?
Obj-C compiler: x86_64-conda-linux-gnu-gcc -g -O2 -fobjc-exceptions
Interfaces supported: X11
External libraries: pcre2, readline, curl
Additional capabilities: JPEG, NLS, ICU
Options enabled: shared BLAS, R profiling
Capabilities skipped: PNG, TIFF, cairo
Options not enabled: memory profiling
Recommended packages: yes
这里是 sessionInfo()。
> sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: CentOS Linux 8 (Core)
Matrix products: default
BLAS: /expanse/projects/janssen4/dsci-csb/user/sguo2/bin/R-4.1.0/lib/libRblas.so
LAPACK: /expanse/projects/janssen4/dsci-csb/user/sguo2/bin/R-4.1.0/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.1.0