4

我可以从常规终端plot()进入R,但不能从tmux伪终端进入。png()工作正常,但我无法写入显示器。

更新:对不起,没有错误信息。R只是无法“打印”到显示器。

更新 2: ctrl +b :showenv返回

DISPLAY=:0                                                                     
SSH_AGENT_PID=1786
-SSH_ASKPASS
SSH_AUTH_SOCK=/tmp/ssh-ebteUtjL1719/agent.1719
-SSH_CONNECTION
WINDOWID=18928777
XAUTHORITY=/home/me/.Xauthority
4

2 回答 2

2

在 R 中修复

Sys.getenv('DISPLAY')
Sys.setenv("DISPLAY"=":0.0")
X11()
qplot(...)
.Devices
device.list()

应该这样做。


在 tmux 中修复

您也可以键入Ctrl+ b:setenv DISPLAY :0.0将其更改为 fromtmux而不是 from R


为什么会这样?

tmux当您最初运行命令以启动会话管理器时,它可能与您打开 tmux(虚拟终端与 GNOME 终端)的位置有关。

echo $DISPLAY在终端和R 中很好Sys.getenv("DISPLAY")。见https://unix.stackexchange.com/questions/31283/error-in-r-unable-to-open-connection-to-x11

你也可以capabilities()在 R 中运行,如果capabilities()$X11 == FALSE那样的话,那就是要修复的问题。

我搞砸了一段时间,然后能够做到X11(); qplot( my.ggplot )。检查?X11更多信息。

于 2015-07-24T15:17:57.440 回答
1

如果您包含错误消息会有所帮助,但听起来您的DISPLAY环境变量在tmux. echo $DISPLAY从会话外部发出tmux,并确保DISPLAYtmux.

您可以使用update-environment命令 intmux进行配置tmux,以便它tmux使用来自外部环境的值自动更新特定环境变量。有关详细信息,请参阅tmux 手册页,或在 Web 上搜索“tmux update-environment”以获取描述此功能的各种其他页面。

于 2012-10-04T04:37:06.483 回答