![](/img/trans.png)
[英]add latest R installation path from registry to PATH windows 7/8/10
[英]For what are R for Windows' “Current Version” and “Install Path” registry entries used?
这是我要问的两个注册表项。**
HKEY_LOCAL_MACHINE\Software\R-core\R\Current Version
HKEY_LOCAL_MACHINE\Software\R-core\R\version\InstallPath
当R从命令行启动时(或者从emacs或statconnDCOM启动 ),它使用Windows的Path
环境变量中首先出现的任何版本。 相反,双击*.Rdata
文件将使用HKEY_CLASSES_ROOT
相关文件关联条目指向的版本。
但是什么时候使用两个HKEY_LOCAL_MACHINE
条目?
编辑: Brian Diggs指向一组Windows *.bat
文件,它们使用(并修改)这些注册表项,但我仍然对是否有更接近'core'R的东西感兴趣。 (我希望答案是'不'。)
**正如描述的Windows FAQ研发 ,这些项目可能会在安装过程中(点击“注册表中保存版本号”)或更高版本的命令行(键入以设置RSetReg.exe
从内部$RHOME\\bin
)。
使用这些程序的一组程序是R批处理文件
这些程序通过(1)检查环境变量(R_HOME,R_MIKTEX,R_TOOLS)或(2)(如果未设置它们在注册表中查找)来设置R(以及R Tools和miktex的版本)的版本。
主要编辑:
看起来这些注册表项主要供外部应用程序使用。
这就是我认为的原因。
R源中的grep'ing HKEY_LOCAL_MACHINE
仅在三个文件中出现四次点击。 该文件- "extra.c"
"RSetReg.c"
和"rhome.c"
-均位于R-2.15.0/src/gnuwin/
或它的子目录。
相关的出现似乎是在R-2.15.0/src/gnuwin/rhome.c
,它由C函数get_R_HOME
。 该功能旨在
/ *从环境或注册表获取R_HOME:在嵌入式应用程序中使用* /
并且它仅在R_HOME
搜索,如果尚未在“C环境空间”或“Windows API环境空间”中找到它。
反过来, get_R_HOME
只出现在另外两个文件"R-2.15.0/src/gnuwin/embeddedR.c"
和"R-2.15.0/src/gnuwin/front-ends/rtest.c"
。 (根据其常驻readme
文件, "R-2.15.0/src/gnuwin/front-ends/"
是使“将[...] R DLL链接到其他应用程序”。)
R的* NIX起源和对可移植性的强调使得R的核心功能似乎不太可能依赖于注册表项。 (这个项目显然更具投机性。)
除非我另有说明,否则这足以让我相信注册表项的唯一目的是为外部应用程序提供指针,特别是那些使用R的嵌入式实例的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.