R Cairo安装不使用apt-get和sudo命令

16

我正在使用一个无界面的Ubuntu机器,其中大部分cairo要求已经预先安装好了,但我在尝试让R使用Cairo时遇到了问题。请问是否有人知道我需要设置/安装哪些标志或附加软件包,以便使用已存在的依赖项安装正确构建Cairo的install.packages?我不能使用sudo命令或apt-get,而且额外的软件必须涉及<50Mb的内存。这可行吗?如果我能将它连接到R中,看起来我需要的大部分东西都已经存在。

> library('Cairo')
Error in library("Cairo") : there is no package called ‘Cairo’
> install.packages('Cairo')
...
* installing *source* package ‘Cairo’ ...
...
checking for pkg-config... /usr/bin/pkg-config
configure: CAIRO_CFLAGS=/usr/lib:/usr/bin:/usr/include
checking if R was compiled with the RConn patch... no
checking cairo.h usability... no
checking cairo.h presence... no
checking for cairo.h... no
configure: error: Cannot find cairo.h! Please install cairo (http://www.cairographics.org/) and/or set CAIRO_CFLAGS/LIBS correspondingly.
ERROR: configuration failed for package ‘Cairo’
* removing ‘/app/vendor/R/lib64/R/library/Cairo’
这意味着我需要安装libcairo2-dev软件包,但是通过configure/make安装时,尽管pixman已经在我的系统中存在,仍会遇到一个pixman错误:
package pixman-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `pixman-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pixman-1' found
No package 'pixman-1' found
checking whether cairo's image surface backend feature could be enabled
no (requires pixman-1 >= 0.22.0 http://cairographics.org/releases/)error: mandatory image surface backend feature could not be enabled

已安装的内容:

$ dpkg -l | grep 'cairo\|png\|fontc\|pix'
ii  fontconfig     2.8.0-2ubuntu1 generic font configuration library - support
ii  fontconfig-con 2.8.0-2ubuntu1 generic font configuration library - configu
ii  libcairo2      1.8.10-2ubuntu The Cairo 2D vector graphics library
ii  libfontconfig1 2.8.0-2ubuntu1 generic font configuration library - runtime
ii  libpixman-1-0  0.16.4-1ubuntu pixel-manipulation library for X and cairo
ii  libpng12-0     1.2.42-1ubuntu PNG library - runtime
ii  libpng12-dev   1.2.42-1ubuntu PNG library - development

我的会话信息:

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-unknown-linux-gnu (64-bit)

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=C                 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   

R无法识别cairo:

> capabilities()
    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets 
   FALSE    FALSE    FALSE    FALSE    FALSE    FALSE     TRUE     TRUE 
  libxml     fifo   cledit    iconv      NLS  profmem    cairo 
    TRUE     TRUE     TRUE     TRUE     TRUE    FALSE    FALSE 

1
您可能还需要安装开发包 libpixman-1-dev - Vincent Zoonekynd
如果你只需要cairo.h,为什么不直接安装libcairo2-dev而是要自己构建cairo呢? - Uli Schlachter
正如第二段文字所指出的,我正在尝试安装该软件包,但遇到了依赖错误。上面的评论者是正确的,pixman也需要开发头文件。 - bwarren2
2
@bwarren,你已经解决了这个问题吗?我在使用AWS R实例时遇到了相同的问题。 - Jonno Bourne
3个回答

36

你需要 Cairo 开发文件。

apt-get install libcairo2-dev

我还需要安装以下内容

apt-get install libxt-dev

如 OP 所请求,对于不使用 apt 的解决方案,请参见以下 答案


7
需要使用apt-get和sudo命令,但标题中指出这些命令不可用。关于这个过程的更明确的答案可以在http://stackoverflow.com/questions/16435615/heroku-rpy-rhome-discovery/21742833#21742833找到。 - bwarren2
我在2023年仍然遇到了这个问题,而您的建议解决了我的问题。谢谢。 - Ichsan

1

看起来您需要安装cario-devel。请参考以下安装说明。至少我这样做解决了缺失“cairo.h”问题。希望能对您有所帮助。

http://cairographics.org/download/


-6

请按照以下步骤进行

sudo apt-get install libcairo2-dev

安装完成后,您可以在R-Studio中执行以下命令:

install.packages('Cairo')
library(Cairo)

3
好的,我会尽力进行翻译。以下是需要翻译的内容:这个问题(现在相当古老)说没有使用“sudo”或“apt-get”。 - Morpheus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接