安装Cairo R包时出现错误

3
我正在尝试在Mac OS X 10.7.4的R开发版本中安装Cairo包,但我遇到了一个无法解决的问题。
我已经使用homebrew安装了Cairo(即brew install cairo),并收到以下消息:

==> Caveats This formula is keg-only, so it was not symlinked into /usr/local.

Mac OS X already provides this program and installing another version in parallel can cause all kinds of trouble.

The Cairo provided by Leopard is too old for newer software to link against.

Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add its lib & include paths to your build variables:

LDFLAGS  -L/usr/local/Cellar/cairo/1.12.2/lib
CPPFLAGS -I/usr/local/Cellar/cairo/1.12.2/include
考虑到上述信息,我尝试使用以下R命令从R-Forge安装Cairo包:
install.packages("Cairo", repos="http://www.rforge.net/", configure.args = c("CAIRO_LIBS=/usr/local/Cellar/cairo/1.12.2/lib", "CAIRO_CFLAGS=/usr/local/Cellar/cairo/1.12.2/include/cairo"))
但是我遇到了以下错误:
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’
我重复执行了相同的命令,没有使用repos参数(默认情况下,我使用FHCRC镜像),但结果相同。
此时,问题似乎很明显:文件cairo.h不存在。但是我列出了include / cairo目录中的文件。以下是响应: ls /usr/local/Cellar/cairo/1.12.2/include/cairo cairo-deprecated.h cairo-ft.h cairo-ps.h cairo-script-interpreter.h cairo-svg.h cairo-xcb.h cairo-xlib.h cairo-features.h cairo-pdf.h cairo-quartz.h cairo-script.h cairo-version.h cairo-xlib-xrender.h cairo.h
因此,我将Cairo包的安装位置指向了适当的位置,但错误仍然存在。我尝试了各种变化,例如CAIRO_CFLAGS = / usr / local / Cellar / cairo / 1.12.2 / include,但没有成功。
您有什么想法吗?非常感谢您提供的任何帮助。
如果需要,这是我的sessionInfo:
R Under development (unstable) (2012-08-08 r60208) Platform: x86_64-apple-darwin11.4.0 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils
datasets methods base other attached packages: [1] BiocInstaller_1.5.12 loaded via a namespace (and not attached): [1] tools_2.16.0

2
这只是一个猜测,但在Unix平台上,我通常会将此行为与未安装Cairo开发包相关联。对于Mac,我无法发表意见,但许多*nix软件包都有二进制软件包和包含所有源代码和包含文件的dev软件包。cairo.h可能在其中一个软件包中,而不在您认为它在的include目录中。目录被称为“includes”可能会产生误导。:-Z - Ryan R. Rosario
@RyanRosario - 我不完全确定问题是什么,但请看下面的答案。基本上,我们手动从头安装了所有必要的C库。 - ramhiser
很好!我注意到对于某些罕见的包A,所有依赖项都需要二进制或一起从源代码构建,这是不幸的。当您有另一个包C需要先决条件B的不同版本以供包A使用时,这会让人感到痛苦。 - Ryan R. Rosario
4个回答

5

我曾经遇到cairo配置错误的问题,而我已经使用Homebrew安装了cairo。请尝试以下方法

brew install pkg-config

这解决了我的问题。

1
我和一位同事刚刚通过忽略我上面输入的所有内容来解决了问题。相反,我们手动从源代码安装了Cairo及其所有依赖项,从而绕过了使用brew或类似port的方式。这个方法非常有效,所以我不确定上面出了什么问题。

0
尝试了这里列出的所有方法后,我发现这篇博客文章中提到使用brew安装“完整的R包”的方法:https://luispuerto.net/blog/2018/05/11/installing-r-with-homebrew-with-all-the-capabilities/
最终对我有效的方法是使用cairo明确地构建R(brew的默认R tap使用--without-cairo,并且简单地编辑tap对于我来说并没有解决问题)。
在macOS Catalina 10.15.6下,我成功地使用R 4.0.2和cairo 1.16.0_3。

0
在Homebrew中从源代码安装:
 brew install R --build-from-source

导致R与适当的cairo库连接起来。

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