停止R呼叫XQuartz

时间:2019-05-20 12:33:53

标签: r xquartz

我在macOS上,在终端上使用R。 R通常会启动XQuartz,例如使用install.packages("digest")

> install.packages("digest")
Installing package into ‘~/Library/R/3.5/library’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---

随即打开一个带有Secure CRAN mirrors的XQuartz窗口。

另一个例子是,当有更新的软件包可用时,XQuartz窗口打开并带有

These packages have more recent versions available. Which would you like to update?
digest (0.6.18 -> 0.6.19) [CRAN]

如何强制R从终端问问题而不是打开XQuartz?

2 个答案:

答案 0 :(得分:1)

那是因为MacOSX需要XQuartz。在R MacOSX FAQ中:

  

quartz()设备是Mac OS X中R中的本机图形设备。...可以从R.APP或在Mac控制台上运行的R的合适版本中使用quartz()设备。支持的地方是默认的图形设备。 ...石英设备允许相互作用。

可以在安装软件包时为您的CRAN存储库设置一个选项:

onResume()

您还可以在代码的开头使用removed/added定义CRAN存储库:

install.packages("digest", repos = "https://cran.r-project.org")

下面是CRAN mirros的列表,您可以在其中选择最适合自己的情况。

您还可以在options(在macOS上为options(repos = structure(c(CRAN = "your_cran_mirror"))) )上的Rprofile.site网站上设置这些首选项,

/Library/Frameworks/R.framework/Resources/etc/Rprofile.site

P.S .:稍后从this post复制。

答案 1 :(得分:0)

尽管XQuartz是Mac上R的本机图形设备,但实际上仍然可以控制这些菜单的直接显示位置。通过在.Rprofile中添加一行,您可以强制R在控制台中直接询问问题,就像您问的那样:

options("menu.graphics" = FALSE)

真正发生的是函数install.packages实际上正在调用utils::menu,该函数向用户显示选择菜单。函数menu本身以两种模式运行:如果函数graphics的参数为TRUE,则它将尝试在默认的图形设备中显示菜单-在本例中为XQuartz窗口---,否则将在控制台中显示文本菜单。此行为由全局选项menu.graphics控制。

相关问题