【问题标题】:X11 forwarding over ssh for R: why this warning?X11 通过 ssh 转发 R:为什么会出现这个警告?
【发布时间】:2014-02-19 01:45:52
【问题描述】:

我需要通过带有 X11 转发的 ssh 连接在远程服务器 (NetBSD) 上使用 R(来自 pkgsrc 的 3.0.2)。 plot(1) 正在我的本地机器上生成预期的图形,但是 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"  

【问题讨论】:

  • 这是字体或编码问题。在 netBSD 机器上,sessionInfo()names(X11Fonts()) 得到什么?

标签: r ssh x11 netbsd


【解决方案1】:

错误表示 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)

【讨论】:

  • 按照您的建议设置系统区域设置后,我仍然遇到同样的错误,但这显然是在正确的轨道上。
  • 尝试“LC_ALL”而不是“LC_TIME”(复制和粘贴而不读取)。
  • 在使用您指定的两个 Sys.setlocale 命令后,R 找不到任何 X11 字体,因此绘图呈现时没有文本(例如比例尺)。我正在检查这是否是我需要在 R 之外的 NetBSD/pkgsrc 中解决的问题。
  • 不走运。还是卡住了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 2020-04-22
  • 2011-06-25
  • 1970-01-01
相关资源
最近更新 更多