Kesalahan dalam R: Tidak dapat membuka koneksi ke X11

9

Saya baru saja mengatur distribusi fedora di komputer saya dan perlahan-lahan mencoba mempelajari cara bekerja dari baris perintah. Saya menguji Ryang berjalan dengan baik, kecuali untuk beberapa alasan ketika saya mencoba lagi tiba-tiba saya tampaknya tidak dapat menggambar plot. Saya mendapatkan kesalahan:

> 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 ''

dan ketika saya memeriksa kemampuan saya melihat itu X11adalah 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 

Meskipun saya tidak tahu apa-apa tentang apakah itu terhubung atau tidak, sepertinya X11 harus diaktifkan?

Di mana-mana saya mencari orang ini tampaknya memiliki masalah ini ketika bekerja melalui koneksi ssh (saya belum melihat apa itu tepatnya: $).

Saya harap seseorang yang tahu tentang masalah ini bisa menjelaskan masalah ini kepada saya dan menyarankan solusi.

Joann
sumber
1
Sebelum memulai R dapatkah Anda memposting keluaranecho $DISPLAY
Karlson
Perintah ini menghasilkan ´: 0´
Jóhann
1
Bagaimana dengan dari R:Sys.getenv("DISPLAY")
Karlson
hmm, ini hanya memberi saya bash: syntax error near unexpected token "DISPLAY" '`
Jóhann
Lakukan ini: Sys.getenv(DISPLAY)atau ini: Sys.getenv('DISPLAY')atauSys.getenv(c("DISPLAY"))
Karlson

Jawaban:

6

Ada banyak utas di tempat lain terkait dengan paket Kairo.

Salah satunya menyebutkan perubahan dalam tipe X11 tetapi kebanyakan dari mereka menyatakan bahwa R tidak tahu apa itu tampilan dan menyarankan untuk melakukan:

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

atau, pada sistem yang lebih lama,

Sys.putenv("DISPLAY"=":0.0")
Karlson
sumber
5
Sayangnya tidak ada solusi ini, atau yang disebutkan di utas lainnya sepertinya memperbaiki ini. : / Paket saya juga bersikeras saya menggunakan Sys.setenv bukannya putenv .. tidak tahu apakah hte perintah baru berbeda?
Jóhann
3
Sys.putenvtidak digunakan lagiSys.setenv
Karlson
1
Ini berfungsi saat berikutnya saya mencoba menggunakan ini :). Pasti ada yang aneh dengan sesi terakhir
Jóhann
1

Jika Anda tidak memiliki server X lokal, Anda dapat menginstal server framebuffer X11 virtual seperti yang dikatakan di sini :

apt-get install xvfb xauth xfonts-base

Kemudian Anda dapat memulai contoh baru seperti yang dikatakan di sini :

Xvfb :0 -ac -screen 0 1960x2000x24 &

Kemudian jika R Anda dikompilasi dengan with-xopsi konfigurasi (diaktifkan secara default), Anda harus memiliki kemampuan X11, dan Anda hanya perlu mendeklarasikan ini di R:

Sys.setenv("DISPLAY"=":0")
Anthony O.
sumber