Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 自制R构建缺少Cairo_Macos_R_Homebrew_Cairo_Cran - Fatal编程技术网

Macos 自制R构建缺少Cairo

Macos 自制R构建缺少Cairo,macos,r,homebrew,cairo,cran,Macos,R,Homebrew,Cairo,Cran,我使用brew在OSX 10.7.5服务器上安装了R: brew install R 到目前为止,一切似乎都很正常,但开罗不起作用: > svg(tempfile()) Warning messages: 1: In svg(tempfile()) : unable to load shared object '/usr/local/Cellar/r/2.15.2/R.framework/Resources/library/grDevices/libs//cairo.so': d

我使用brew在OSX 10.7.5服务器上安装了R:

brew install R
到目前为止,一切似乎都很正常,但开罗不起作用:

> svg(tempfile())
Warning messages:
1: In svg(tempfile()) :
  unable to load shared object '/usr/local/Cellar/r/2.15.2/R.framework/Resources/library/grDevices/libs//cairo.so':
  dlopen(/usr/local/Cellar/r/2.15.2/R.framework/Resources/library/grDevices/libs//cairo.so, 6): image not found
2: In svg(tempfile()) : failed to load cairo DLL
共享对象文件似乎完全丢失:

id-86-243:Resources jeroen$ ls -ltr library/grDevices/libs/
total 488
-rwxrwxr-x  1 jeroen  admin  245764 Dec 22 17:03 grDevices.so

我很少使用OSX,所以我不太确定这是R的这个特定发行版中的一个bug,还是我在构建它时做了一些错误的事情?

我刚刚遇到了这个问题。在R配置阶段,
pkg config
查找
cairo
似乎有问题。解决办法似乎是:

export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
这样R就可以正确地使用cairo

我直接从源代码安装R,而不是使用
homebrew
,但我确实使用
homebrew
使其他库保持最新。这就解决了我的问题


作为参考,我正在运行OSX Mavericks。

最终对我有效的是使用cairo显式地构建R(brew的默认R tap使用
——没有cairo
,简单地编辑tap并不能解决我的问题)

这篇精彩的博文对此进行了解释:


在macOS Catalina 10.15.6下,R 4.0.2、cairo 1.16.0_3对我来说很有吸引力。

ISTR Simon Urbanek不鼓励人们使用自制软件来编译R。2012年11月4日,他在MacSIG中写道:“你不能将CRAN二进制文件与自制软件一起使用。如果你使用自制软件,你完全靠自己,你必须从源代码构建一切。”那很好。在Linux中,我们也总是从源代码安装软件包。grDevices是base R。默认软件包包括'base'和'grDevices',但grDevices不在'base'软件包中。使用macports安装R时,我必须确保我安装的是R-framework,而不仅仅是R。brew可能存在类似问题?我建议使用macports。@DWin我指的是它的优先级:在自制软件中从源代码安装(即作为
brew安装R——从源代码构建
)导致R链接到适合我的开罗库。