实际问题
是否可以在需要/加载包后覆盖对包(重新)安装的阻止?
我明白阻止“真实”重新安装 to the same一旦使用了包,从中加载包的库就非常有意义。但我的用例有点不同
背景
我喜欢用“沙箱库”来测试自己的包的想法。除了要测试的包之外,这些沙箱库还包含干净的基础 R 安装的所有基础包plus为了使我的整个包构建和测试框架正常工作,需要一些 contrib 包(例如digest
, stringr
ETC。)。但是,我的框架从标准库加载后一个包,并且then需要将它们安装到沙箱库中 - 该库已被阻止。因此我的问题是是否可以覆盖这一点,因为我并没有真正按照人们在实现该块时想到的那样去做。
插图
指定两个库的路径
lib <- file.path(R.home(), "library")
lib.sandbox <- file.path(tempdir(), "library")
创建沙箱库
dir.create(lib.sandbox, showWarnings=FALSE)
将包安装到标准库并加载
install.packages("digest", lib=lib)
require("digest", lib.loc=lib)
然后也安装到沙盒库中
> install.packages("digest", lib=lib.sandbox)
Warning: package 'digest' is in use and will not be installed
我的框架解决了某些问题after某些还应安装到沙箱库的软件包已加载,因此我不能将“安装到沙箱库”步骤放在初始加载步骤之前。