假设我正在开发一个名为magicr
的程序包来做一些统计魔法,我希望它能使用另一个名为fairydust
的程序包中的函数(假设存在于CRAN上)。
不幸的是fairydust
刚刚将版本2.0.0发布到CRAN并完全破坏了我计划使用的功能。
所以我更新了我的描述
Imports:
fairydust (<= 1.9.9)
构建软件包并尝试将测试安装到一个干净的库中
devtools::install_local("~path/to/magicr")
Installing magicr
Installing 1 package: fairydust
Installing package into /path/to/current/library/fairydust
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/fairydust_2.0.0.zip'
Content type 'application/zip' length 11235813 bytes (11.2 MB)
downloaded 11.2 MB
package ‘fairydust’ successfully unpacked and MD5 sums checked
* installing *source* package 'magicr' ...
** R
** inst
** tests
** preparing package for lazy loading
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
namespace 'fairydust' 2.0.0 is being loaded, but <= 1.9.9 is required
ERROR: lazy loading failed for package 'magicr'
* removing 'path/to/current/library/magicr'
Error: Command failed (1)
因此,在解析依赖关系时,它只是从CRAN安装了最新版本的fairydust
,然后在尝试加载magicr
时检查了该版本。
有没有办法在安装fairydust
时自动获取所需版本的magicr
,而无需构建并指向自定义存储库(la drat和miniCRAN)