我在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?
答案 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
控制。