Erro no R: não é possível abrir a conexão com o X11


9

Acabei de configurar uma distribuição do fedora no meu computador e estou lentamente tentando aprender como trabalhar na linha de comando. Eu estava testando o Rque correu bem, exceto por alguma razão, quando tentei novamente, de repente pareço incapaz de desenhar gráficos. Eu recebo o erro:

> x = 1:5
> y = x^2
> plot(x,y)
No protocol specified
Error in X11(d$display, d$width, d$height, d$pointsize, d$gamma, d$colortype,  : 
  unable to start device X11cairo
In addition: Warning message:
In function (display = "", width, height, pointsize, gamma, bg,  :
  unable to open connection to X11 display ''

e quando verifico os recursos, vejo que X11é FALSE:

> capabilities()
No protocol specified
    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     TRUE     TRUE     TRUE    FALSE     TRUE 

Embora eu não saiba nada sobre se eles estão conectados ou não, parece que o X11 deve estar ativado?

Em todos os lugares em que procurei, esse pessoal parecia ter esse problema ao trabalhar em uma conexão ssh (ainda não dei uma olhada no que é exatamente isso: $).

Espero que alguém que saiba do que se trata esse problema possa ser tão bom para me explicar o problema e sugerir uma solução.


1
Antes de iniciar o R, você pode postar a saída deecho $DISPLAY
Karlson

Este comando produz ´: 0´
Jóhann

1
Que tal de R:Sys.getenv("DISPLAY")
Karlson

hmm, isso só me dá bash: syntax error near unexpected token "DISPLAY" ''
Jóhann

Faça isto: Sys.getenv(DISPLAY)or this: Sys.getenv('DISPLAY')orSys.getenv(c("DISPLAY"))
Karlson

Respostas:


6

Existem muitos tópicos em outros lugares relacionados ao pacote do Cairo.

Um deles menciona a alteração no tipo X11, mas a maioria deles afirma que R não sabe o que é a exibição e sugere:

Sys.setenv("DISPLAY"=":0.0")

ou, em sistemas mais antigos,

Sys.putenv("DISPLAY"=":0.0")

5
Infelizmente, nem essa solução, nem a mencionada no outro segmento parecem corrigir isso. : / Meu pacote também insiste em usar o Sys.setenv em vez do putenv .. não sei se o novo comando é diferente?
Jóhann

3
Sys.putenvé preterido em favor deSys.setenv
Karlson

1
Isso funcionou na próxima vez que tentei usar isso :). Deve ter sido algo estranho com a última sessão
Jóhann

1

Se você não possui um servidor X local, pode instalar o servidor X11 do framebuffer virtual como dito aqui :

apt-get install xvfb xauth xfonts-base

Então você pode iniciar uma nova instância, como foi dito aqui :

Xvfb :0 -ac -screen 0 1960x2000x24 &

Então, se o seu R é compilado com a with-xopção de configuração (ativada por padrão), você deve ter o recurso X11 e apenas declarar isso no R:

Sys.setenv("DISPLAY"=":0")
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.