在 R 中自动创建个人图书馆
automatically create personal library in R
当您尝试在 R 中安装包并且您没有访问默认库路径的权限时,R 会询问您:
Would you like to use a personal library instead?
Would you like to create a personal library '~/path' to install
packages into?
但是,如果您是 运行 Rscript,这些消息将不会显示并且安装会失败。我可以预定义特定路径并指示 install.packages
使用它,但我不想创建特定于此 Rscript 的额外库路径。我只想使用默认的个人图书馆。有没有办法在不需要交互的情况下强制创建个人图书馆?
您可以使用Sys.getenv("R_LIBS_USER")
获取本地图书馆搜索位置。
这就是我最终所做的,似乎有效(最难的部分是测试解决方案,因为问题只在您第一次尝试安装包时出现):
# create local user library path (not present by default)
dir.create(path = Sys.getenv("R_LIBS_USER"), showWarnings = FALSE, recursive = TRUE)
# install to local user library path
install.packages(p, lib = Sys.getenv("R_LIBS_USER"), repos = "https://cran.rstudio.com/")
# Bioconductor version (works for both Bioconductor and CRAN packages)
BiocManager::install(p, update = FALSE, lib = Sys.getenv("R_LIBS_USER"))
正如@hrbrmstr 在评论中指出的那样,强制安装软件包可能不是一个好主意,因此使用风险自负。
当您尝试在 R 中安装包并且您没有访问默认库路径的权限时,R 会询问您:
Would you like to use a personal library instead?
Would you like to create a personal library '~/path' to install packages into?
但是,如果您是 运行 Rscript,这些消息将不会显示并且安装会失败。我可以预定义特定路径并指示 install.packages
使用它,但我不想创建特定于此 Rscript 的额外库路径。我只想使用默认的个人图书馆。有没有办法在不需要交互的情况下强制创建个人图书馆?
您可以使用Sys.getenv("R_LIBS_USER")
获取本地图书馆搜索位置。
这就是我最终所做的,似乎有效(最难的部分是测试解决方案,因为问题只在您第一次尝试安装包时出现):
# create local user library path (not present by default)
dir.create(path = Sys.getenv("R_LIBS_USER"), showWarnings = FALSE, recursive = TRUE)
# install to local user library path
install.packages(p, lib = Sys.getenv("R_LIBS_USER"), repos = "https://cran.rstudio.com/")
# Bioconductor version (works for both Bioconductor and CRAN packages)
BiocManager::install(p, update = FALSE, lib = Sys.getenv("R_LIBS_USER"))
正如@hrbrmstr 在评论中指出的那样,强制安装软件包可能不是一个好主意,因此使用风险自负。