10

我在 VM(Red Hat Enterprise Linux Server 版本 6.4)上运行 R-shiny(R 版本 3.0.1 (2013-05-16))。一切正常,即服务器启动,应用程序运行等......只要我不尝试绘制图表

renderPlot

然后我在主面板上看到一条消息 [错误:无法启动设备 png]。我会发布我的整个代码,但我认为这个问题与渲染图有关,因为当我使用 renderText 并吐出一些数据时它工作得很好。

实际上,当我在 RI 中输入 png() 时会收到此错误 [ Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width, : unable to start device PNG 另外:警告消息:在 png() 中:无法打开与 X11 的连接显示''] 当然,如果我通过 ssh -X 转发到我的 mac,我可以输入png()没问题并绘制数据等...

- 还有一些需要注意的事情,当我输入 capabilties() 时,我发现唯一错误的是 jpeg、tiff、X11、aqua 和 profmem(所以 png 和 cairo 是正确的)

-在从源代码构建 R 之前,我已经安装了 libpng、cairo 和 libX11、libX11-devel、libXt、libXt-devel

我猜我的问题是我需要运行 X 服务器。此外,DISPLAY 变量为空。

所以,我想当它归结为它时,我的问题是......假设我的逻辑是正确的。

1)我是否需要运行/启动 X 服务器 [目前它在启动后因某种原因终止] 还是我可以只设置 DISPLAY 变量?

2)如果我可以设置我的 DISPLAY 变量,我应该将它设置为什么(localhost:0.0 没有工作)

显然,如果我遗漏了什么,这些问题可能无关紧要。

在此先感谢并抱歉漫无边际,想要彻底。

PJ

4

2 回答 2

13

如果你设置它有帮助option(bitmapType = 'cairo')吗?我一直怀疑 R 如何选择使用.Call(C_cairoProps, 2L)in的位图设备类型grDevices:::.onLoad()(这可能是一个错误,但我不能肯定地说)。

如果测试失败,该选项bitmapType会退回到,从而为您提供有关. 注意中的论点:XlibcairoX11typepng()

> args(png)
function (filename = "Rplot%03d.png", width = 480, height = 480, 
    units = "px", pointsize = 12, bg = "white", res = NA, ..., 
    type = c("cairo", "cairo-png", "Xlib", "quartz"), antialias) 

此参数的默认值为getOption('bitmapType'),在您的情况下,这是Xlib由于grDevices:::.onLoad(). 如果您 100% 确定这cairo可行,则可以更改此选项,例如,在您的~/.Rprofile.

于 2013-07-30T18:48:36.700 回答
2

我可以通过安装一些额外的开发包然后从源代码卸载/重新安装 R 来解决这个问题。在此之前,所有其他推荐的选项都对我不起作用。

sudo yum install pango-devel pango libpng-devel

转到安装源 R 文件的目录:

make uninstall
./configure --with-readline=no (or ./configure might work for you)
make
make install
于 2015-06-24T16:01:22.197 回答