我在AWS上设置了作为EC2微实例的R Studio服务器(0.98.864 Ubuntu版本)的预览版本。当我尝试编织一个简单的.Rmd文档时,我收到以下错误消息:
Error in with_pandoc_safe_environment({ :
The 'LANG' environment variable must be set before running Pandoc.
Calls: <Anonymous> ... FUN -> get_pandoc_version -> with_pandoc_safe_environment
Execution halted
我已经通过编辑/etc/environment
来设置语言变量,而且我已经安装了language-pack-en-base
。现在,当我运行locale
时,我得到了:
LANG=en_US.UTF-8
LANGUAGE=en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
所以似乎已经设置了LANG环境变量。
的确,当我从命令行运行R时,我得到:
> Sys.getenv("LANG",unset=NA)
[1] "en_US.UTF-8"
它似乎也已为所有用户设置,因为当我使用
以其他用户身份登录时su - <username>
并运行locale
,我得到了上述结果。
但是,当我重新启动服务器时:
sudo rstudio-server restart
然后以用户身份登录到服务器,我得到:
> is.na(Sys.getenv("LANG", unset = NA))
[1] TRUE
我的语言设置适用于所有用户,但不知道这些信息是否未送达服务器。
部分解决方法是以用户身份登录服务器并添加
Sys.setenv(LANG="en_US.UTF-8")
到我的.Rprofile
。但是,这一次仅适用于一个用户,我想立即为所有用户解决问题。
有人能看出我哪里出错吗?
或者R中是否有另一个必须修改的配置文件?我尝试创建并向/etc/rstudio/rserver.conf
和/etc/rstudio/rsession.conf
添加各种命令(请参阅this document),但配置测试中没有任何内容。