Lỗi trong R: Không thể mở kết nối với X11


9

Tôi vừa thiết lập một bản phân phối fedora trên máy tính của mình và đang dần cố gắng học cách làm việc từ dòng lệnh. Tôi đã thử nghiệm rất Rtốt, ngoại trừ một số lý do khi tôi thử lại, đột nhiên tôi dường như không thể vẽ được các ô. Tôi nhận được lỗi:

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

và khi tôi kiểm tra các khả năng tôi thấy đó X11FALSE:

> 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 

Mặc dù tôi không biết gì về việc những thứ đó có được kết nối hay không nhưng có vẻ như X11 sẽ được bật?

Ở mọi nơi tôi tìm kiếm người này dường như có vấn đề này khi làm việc qua kết nối ssh (Tôi chưa xem xét chính xác đó là gì: $).

Tôi hy vọng ai đó biết vấn đề này là gì có thể rất hay để giải thích vấn đề cho tôi và đề xuất giải pháp.


1
Trước khi bắt đầu R, bạn có thể đăng kết quả đầu ra củaecho $DISPLAY
Karlson

Lệnh này mang lại ỏ: 0 từ
Jóhann

1
Làm thế nào từ R:Sys.getenv("DISPLAY")
Karlson

hmm, điều này chỉ mang lại cho tôi bash: syntax error near unexpected token "HIỂN THỊ" '`
Jóhann

Làm điều này: Sys.getenv(DISPLAY)hoặc điều này: Sys.getenv('DISPLAY')hoặcSys.getenv(c("DISPLAY"))
Karlson

Câu trả lời:


6

Có nhiều chủ đề khác liên quan đến gói Cairo.

Một trong số họ đề cập đến sự thay đổi trong loại X11 nhưng hầu hết trong số họ nói rằng R không biết màn hình hiển thị là gì và đề nghị làm:

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

hoặc, trên các hệ thống cũ hơn,

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

5
Thật không may, cả giải pháp này, hoặc giải pháp được đề cập trong luồng khác dường như đều khắc phục điều này. : / Gói của tôi cũng khăng khăng tôi sử dụng Sys.setenv thay vì putenv .. không biết lệnh hte mới có khác không?
Jóhann

3
Sys.putenvkhông được ủng hộSys.setenv
Karlson

1
Điều này làm việc lần sau khi tôi cố gắng sử dụng này :). Phải là một cái gì đó kỳ lạ với phiên cuối cùng
Jóhann

1

Nếu bạn không có bất kỳ máy chủ X cục bộ nào, bạn có thể cài đặt máy chủ X11 framebuffer ảo như đã nói ở đây :

apt-get install xvfb xauth xfonts-base

Sau đó, bạn có thể bắt đầu một ví dụ mới như đã nói ở đây :

Xvfb :0 -ac -screen 0 1960x2000x24 &

Sau đó, nếu R của bạn được biên dịch với with-xtùy chọn cấu hình (được bật theo mặc định), bạn sẽ có khả năng X11 và bạn chỉ cần khai báo điều này trong R:

Sys.setenv("DISPLAY"=":0")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.