在 windows 和 windows 的 linux 子系统之间共享 R 库
Sharing R library's between linux subsystem for windows and windows
我有一个 window ubuntu 虚拟机。我在 windows 中安装了 R。我最近尝试在我的 ubuntu 中调用 R 脚本,但它告诉我该库未安装。有没有办法告诉 ubuntu 的 R 安装使用我的 windows R 库,这样我就不必在 ubuntu 上重新安装它们?
StratifiedFullModel/SecondRun$ Rscript StratifiedFullModels.R
Loading required package: car
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages(x, dependencies = TRUE) :
'lib = "/usr/local/lib/R/site-library"' is not writable
Error in install.packages(x, dependencies = TRUE) :
unable to install packages
Calls: lapply -> FUN -> install.packages
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
there is no package called ‘car’
Execution halted
这很奇怪,因为脚本设置为检查包,其中之一是汽车,然后加载或安装它们。我怀疑它没有这样做是因为权限问题。
这是有问题的,因为我可能想编写自动安装包的脚本,而不必手动执行,如果我与同事共享脚本或将工作转移到新机器,这将非常耗时。
编辑: 尝试在 ubuntu 和 运行 中打开 R install.packages("car") 返回以下错误:
> install.packages("car")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("car") :
'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) cancel
Error in install.packages("car") : unable to install packages
>
我刚刚取消了安装。我认为这证实了我对权限存在问题的怀疑。
请注意,此答案基于我在 WSL 方面的经验,而不是专门基于 R 的经验。我欢迎任何在 WSL 下使用过 R 的人提供更新或更权威的答案。
我相信如果您尝试使用至少 一些 Windows 来自 WSL 的 R 库,您将 运行 遇到问题。从理论上讲,'pure-R' 库应该可以工作,但在我看来,通过一些快速搜索,R 还可以包含特定于平台的编译代码。在这种情况下,如果任何库以本机代码结束,那么 Windows 库在使用 Linux 路径结构(例如 /home
从 Linux 调用时会出现问题而不是 C:\Users
)、流程和其他 OS 结构。
至于权限问题,R 使用默认库目录(在 /usr/local/lib/R/site-library
下),只能由 root
写入。看来您可以使用以下内容更改库安装目录:
> install.packages("car", lib="/home/<username>/.local/lib/R/site-library/")
当然,您需要先创建该目录。有关详细信息,请参阅 this page。
R 的 Linux 和 Windows 安装是完全独立的,包括软件包。也就是说,您可以从 WSL 中 运行 Windows 版本,因此您不需要维护重复的环境。
这是 Linux 和 Windows R 运行ning 在我的机器上的屏幕截图,来自 WSL:
我有一个 window ubuntu 虚拟机。我在 windows 中安装了 R。我最近尝试在我的 ubuntu 中调用 R 脚本,但它告诉我该库未安装。有没有办法告诉 ubuntu 的 R 安装使用我的 windows R 库,这样我就不必在 ubuntu 上重新安装它们?
StratifiedFullModel/SecondRun$ Rscript StratifiedFullModels.R
Loading required package: car
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages(x, dependencies = TRUE) :
'lib = "/usr/local/lib/R/site-library"' is not writable
Error in install.packages(x, dependencies = TRUE) :
unable to install packages
Calls: lapply -> FUN -> install.packages
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
there is no package called ‘car’
Execution halted
这很奇怪,因为脚本设置为检查包,其中之一是汽车,然后加载或安装它们。我怀疑它没有这样做是因为权限问题。
这是有问题的,因为我可能想编写自动安装包的脚本,而不必手动执行,如果我与同事共享脚本或将工作转移到新机器,这将非常耗时。
编辑: 尝试在 ubuntu 和 运行 中打开 R install.packages("car") 返回以下错误:
> install.packages("car")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("car") :
'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) cancel
Error in install.packages("car") : unable to install packages
>
我刚刚取消了安装。我认为这证实了我对权限存在问题的怀疑。
请注意,此答案基于我在 WSL 方面的经验,而不是专门基于 R 的经验。我欢迎任何在 WSL 下使用过 R 的人提供更新或更权威的答案。
我相信如果您尝试使用至少 一些 Windows 来自 WSL 的 R 库,您将 运行 遇到问题。从理论上讲,'pure-R' 库应该可以工作,但在我看来,通过一些快速搜索,R 还可以包含特定于平台的编译代码。在这种情况下,如果任何库以本机代码结束,那么 Windows 库在使用 Linux 路径结构(例如 /home
从 Linux 调用时会出现问题而不是 C:\Users
)、流程和其他 OS 结构。
至于权限问题,R 使用默认库目录(在 /usr/local/lib/R/site-library
下),只能由 root
写入。看来您可以使用以下内容更改库安装目录:
> install.packages("car", lib="/home/<username>/.local/lib/R/site-library/")
当然,您需要先创建该目录。有关详细信息,请参阅 this page。
R 的 Linux 和 Windows 安装是完全独立的,包括软件包。也就是说,您可以从 WSL 中 运行 Windows 版本,因此您不需要维护重复的环境。
这是 Linux 和 Windows R 运行ning 在我的机器上的屏幕截图,来自 WSL: