【发布时间】:2016-03-23 14:50:44
【问题描述】:
我是存储在 github 上的一个包的作者。我的同事使用devtools::install_github() 安装此软件包。他们想测试软件包是否已更新。是否有一个功能可以检查自他们上次安装包以来是否有提交到 github master 分支?
【问题讨论】:
我是存储在 github 上的一个包的作者。我的同事使用devtools::install_github() 安装此软件包。他们想测试软件包是否已更新。是否有一个功能可以检查自他们上次安装包以来是否有提交到 github master 分支?
【问题讨论】:
这是我知道的一种间接方法
然后你可以通过packageVersion()找到你安装的版本
有一个可用的包,名称为versions。
功能available.versions() 可以帮助你。
这将为您找到所有可用的软件包版本。
packageVersion("ggplot2")
#[1] ‘1.0.1’
available.versions("ggplot2")
#$ggplot2
# version date available
#1 1.0.1 2015-03-17 TRUE
#2 1.0.0 2014-05-21 FALSE
#3 0.9.3.1 2013-03-02 FALSE
...
更新:
包devtools 具有函数package_deps() 和dev_package_deps()。
package_deps("ggplot2")
# Needs update -----------------------------
# package installed available
# ggplot2 2.0.0 2.1.0
# scales NA 0.4.0
?package_deps
"Find all dependencies of a CRAN or dev package."
{此功能未经我的开发包测试。但是我相信这应该可以完成您的工作。}
【讨论】:
versions::available.versions() 将“列出所有上载到 CRAN 的命名包的过去版本”。所以这不适用于从 Github 安装的包。
dev_package_deps() 的 repo 参数?例如ggplot2.
package_deps("rNVD3", repos = "ramnathv/rNVD3")
package_deps("ggplot2", repos = "hadley/ggplot2") 不检查github 上的"hadley/ggplot2" 存储库,它只返回"Not on CRAN ----"。而package_deps("ggplot2") 告诉我需要根据 CRAN 上可用的信息更新的包。我在?dev_package_deps 中不清楚的是“开发”包是什么意思?我猜这是您在系统上开发的包,而不是托管在 github 上的包。