R не может запустить устройство PNG - возможности () имеет значение TRUE для PNG?

Я работаю со сценарием R в более широком конвейере, который, кажется, не работает с некоторыми версиями Rscript, но с другими. Вызов не удается из-за невозможности подключения к X11, что понятно, потому что это на сервере. Но моя локальная установка Rscript способна справиться с этим нормально?

Моя локальная установка - версия 3.0.1, в то время как другие пользователи, которые сообщают об этой проблеме, находятся на 3.0.2.

Вот простой тестовый пример - сначала файл.R:

#!/usr/bin/env Rscript

capabilities()

png("abc")

dev.off()

Запустите с моим локальным env:

-bash-4.1$ ./test.R
    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets 
    TRUE     TRUE     TRUE     TRUE    FALSE    FALSE     TRUE     TRUE 
  libxml     fifo   cledit    iconv      NLS  profmem    cairo 
    TRUE     TRUE    FALSE     TRUE     TRUE    FALSE     TRUE 
null device 
          1 

Запустите установку Rscript, которую другие пытаются использовать:

    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets 
    TRUE     TRUE    FALSE     TRUE    FALSE    FALSE     TRUE     TRUE 
  libxml     fifo   cledit    iconv      NLS  profmem    cairo 
    TRUE     TRUE    FALSE     TRUE     TRUE    FALSE     TRUE 
Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width,  : 
  unable to start device PNG
Calls: png
In addition: Warning message:
In png("abc") : unable to open connection to X11 display ''
Execution halted

4 ответа

Решение

На случай, если кто-нибудь найдет это в Google, решение

png("abc", type="cairo")

Вы можете запустить его в команде R

options(bitmapType='cairo')
png("xzvf.png")
plot(z~x)
dev.off()

Попробуйте префикс звонка Rscript с

  xvfb-run

или даже

 xvfb-run --server-args="-screen 0 1024x768x24"

в качестве png, если память служит, использует информацию о шрифте x11. Виртуальный сервер x11, запущенный xvfb-run обеспечивает это, так что это помогает в безголовых настройках, заданиях cron и т. п. pp

У меня была такая же проблема при новой установке Ubuntu 14.04.

Просто установка xvfb-run решил проблему, даже не запуская ее перед запуском R.

Другие вопросы по тегам