2014-02-18 44 views
0

我需要在远程服务器(NetBSD)上通过带有X11转发的ssh连接使用R(来自pkgsrc的3.0.2)。 plot(1)正在我的本地机器上生成预期的图形,但是R也在我的终端会话中返回警告,如下所示。X11通过ssh转发R:为什么这个警告?

> plot(1) 
Warning messages: 
1: In (function (display = "", width, height, pointsize, gamma, bg, : 
    locale not supported by Xlib: some X ops will operate in C locale 
2: In (function (display = "", width, height, pointsize, gamma, bg, : 
    X cannot set locale modifiers 

我不知道这是否代表我可能会遇到的问题,但我希望得到一切设置和正确配置。请有人澄清警告的含义并解释如何解决这些警告?

编辑更多信息:

> sessionInfo() 
R version 3.0.2 (2013-09-25) 
Platform: x86_64--netbsd (64-bit) 

locale: 
[1] C 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  
> names(X11Fonts()) 
[1] "serif"  "sans"   "mono"   "Times"  "Helvetica" 
[6] "CyrTimes"  "CyrHelvetica" "Arial"  "Mincho" 
+0

它是字体或编码问题。在netBSD机器上,你会得到什么'sessionInfo()'和'names(X11Fonts())'? –

回答

0

这些错误是说,X11显卡驱动不知道是干什么用的字体(见this discussion)。默认情况下,R使用C语言环境集进行安装。对于Linux,您需要设置以该语言为前缀的UTF-8语言环境。

例如,对于美国的英语,您可以将其设置为'en_US.UTF-8'。

尝试像这样与Sys.setlocale命令设置系统区域:

Sys.setlocale("LC_CTYPE", "en_US.UTF-8") 
Sys.setlocale("LC_ALL", "en_US.UTF-8") 

这可以通过.bashrc配置文件来实现,如下所示:

export LC_CTYPE=en_US.UTF-8 
export LC_ALL=en_US.UTF-8 

source

+0

按照您的建议设置系统区域设置后,我仍然收到相同的错误,但这显然是正确的。 – Gregory

+0

尝试使用“LC_ALL”而不是“LC_TIME”(复制并粘贴而不读取)。 –

+0

使用了您指出的两个Sys.setlocale命令后,R无法找到任何X11字体,因此绘图不带文本(例如比例尺)呈现。我正在检查是否这是我需要在R之外的NetBSD/pkgsrc中解决的问题。 – Gregory