r - 安装自定义包的依赖
问题描述
我开发了一个本地包,它依赖于 CRAN 上可用的其他包(例如,pool
)。因此,当我尝试使用标准安装包时
install.packages("/path/to/package",
repos = NULL,
type = "source")
我收到一个错误,因为未安装依赖项。install.packages
有一个参数dependencies
,默认情况下会尝试安装这些依赖项。但是,如手册页所述(并在下面的链接问题中评论),repos = NULL
意味着依赖项被忽略。
为了解决这个问题,我使用 packageminiCRAN
创建了一个包含我的包的 repo,希望我可以做一个repos = c("myRepo", getOption("repos"))
让它工作。
现在我可以使用安装我的包
install.packages("package",
repos = c("/path/to/repo", getOptions("repos"),
type = "source")
但前提是我已经安装了pool
. 如果没有,我仍然会收到错误,因为它找不到依赖项。
所以我调用miniCRAN::addPackage("pool")
了 ,它将该包及其许多依赖项添加到我的存储库中,如果我调用它们,它们都会出现miniCRAN::pkgAvail()
。
但是,如果我尝试再次安装我的软件包,我仍然会收到there is no package called 'pool'
错误消息。
有趣的是,如果我尝试pool
从 repo 安装它自己,它就可以工作。
install.packages("pool",
repos = "/path/to/repo",
type = "source")
install.packages("package",
repos = "/path/to/repo",
type = "source")
然而,显然,这种方式比添加pool
到 repo 更重要:我也可以从 CRAN 安装它。
那么这里发生了什么,这真的是安装本地包及其 CRAN 依赖项的唯一方法吗?
解决方案
推荐阅读
- javascript - 如何使用cheerio.js 获取图像src?
- java - 在 debian 中使用 JDK 9 非法访问创建 StreamTableEnvironment
- python - SciKit-Learn 中的特征选择和交叉验证管道中的分数代表什么?
- python - 我正在尝试确定矩阵的最大元素但不断出错(必须使用 For 循环)
- python-3.8 - 使用嵌入式 python 运行 C++ 可执行文件
- python - Heroku 上的 Python 提供 h12
- ios - SwiftUI:NavigationLink 内的水平 ScrollView 会中断导航
- typo3 - TYPO3 系统用户的写入权限
- android-source - AOSP 中的 cc_tests 应该在系统上还是供应商上?
- asp.net-mvc - 文件上传要求用户在验证失败后再次浏览