I'm running R-shiny (R version 3.0.1 (2013-05-16)) on a VM (Red Hat Enterprise Linux Server release 6.4). Everything works, i.e., server starts up, and application runs etc... as long as I don't try to plot a graph
renderPlot
I then see on the main panel a message [error : unable to start device png]. I would post my whole code but this problem I think has to do with rendering plots as when I use renderText and spit out some data it works just fine.
Actually when I just type in png() in R I get this error [ Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width, : unable to start device PNG In addition: Warning message: In png() : unable to open connection to X11 display '' ] of course if I forward via ssh -X to my mac, I can type in png() no problem and plot data etc...
-A few more things to note, when I type in capabilties() I find the only things that are false are jpeg, tiff, X11, aqua, and profmem (so png and cairo are True)
-I've installed libpng, cairo, and libX11, libX11-devel, libXt, libXt-devel before building R from source
I'm guessing my problem is that I need to have X server running. In addition the DISPLAY variable is null.
So, I guess when it boils down to it my question is ... assuming my logic is correct.
1) Do I need to run / start X server [ currently it terminates after starting for some reason] or can I just set the DISPLAY variable?
2) If I can just set my DISPLAY variable what should I set it to (localhost:0.0 hasn't worked)
Obviously if there is something I'm missing these questions may be irrelevant.
Thanks in advance and sorry for rambling, wanted to be thorough.
PJ
Does it help if you set
option(bitmapType = 'cairo')
? I have been skeptical about how R chooses the bitmap device type using.Call(C_cairoProps, 2L)
ingrDevices:::.onLoad()
(this might be a bug, but I cannot say it for sure).The option
bitmapType
falls back toXlib
if the test ofcairo
fails, thus giving you a cryptic error message aboutX11
. Note thetype
argument inpng()
:The default value of this argument is
getOption('bitmapType')
, and in your case it isXlib
due to the test ingrDevices:::.onLoad()
. If you are 100% sure thatcairo
works, you can change this option, say, in your~/.Rprofile
.I was able to resolve this by installing a few additional development packages and then uninstalling/reinstalling R from source. All the other recommended options did not work for me until this.
Go to directory where source R file was installed: