![](/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.