update_PACKAGES
位于 tools
包(package)。 说明
通过读取 PACKAGES
文件、保留仍然有效的条目、删除不再有效的条目以及仅处理与现有条目不匹配的构建包 tarball 来更新现有存储库。
对于大型存储库索引的 small-moderate 更改,update_PACKAGES
可能比 write_PACKAGES
快得多,特别是在非严格模式下(请参阅详细信息)。
用法
update_PACKAGES(dir = ".", fields = NULL, type = c("source",
"mac.binary", "win.binary"), verbose.level = as.integer(dryrun),
latestOnly = TRUE, addFiles = FALSE, rds_compress = "xz",
strict = TRUE, dryrun = FALSE)
参数
dir |
|
fields |
|
type |
|
verbose.level |
(0, 1, 2) 在整个过程中应显示什么级别的信息消息。如果 |
latestOnly |
|
addFiles |
|
rds_compress |
|
strict |
合乎逻辑的。检查现有 |
dryrun |
合乎逻辑的。是否应该计算但不应用对现有 |
细节
在本节中,包 tarball 被定义为 dir
中的任何存档文件,其名称可以解释为 <package>_<version>.<ext>
- 其中 <ext>
是 type
类型的构建包的适当扩展名 - (或者由现有 PACKAGES
条目的 File
字段)。新颖的包 tarball 是那些与现有 PACKAGES
文件条目不匹配的包。
如果满足以下任一条件,update_PACKAGES
直接调用 write_PACKAGES
并发出警告(因此将处理所有包 tarball):
-
type
是win.binary
,strict
是TRUE
(win.binaryPACKAGES
文件中不包含 MD5 校验和) -
dir
下不存在PACKAGES
文件 -
dir
下存在PACKAGES
文件,但为空 -
fields
不是NULL
,并且现有PACKAGES
文件中不存在一个或多个指定字段
update_PACKAGES
在 PACKAGES
文件条目已存在且似乎仍然有效的情况下避免(重新)处理包 tarball。检测still-valid条目的逻辑如下:
任何比现有 PACKAGES
文件最近修改的软件包 tarball 都被认为是新颖的;与此类 tarball 相对应的现有 PACKAGES
条目始终被认为是过时的,并被新生成的条目替换。同样,与 dir
中找到的任何包 tarball 不对应的所有 PACKAGES
条目都被视为无效,并从生成的更新的 PACKAGES
文件中排除。
当 strict
为 TRUE
时,通过 MD5 校验和确认与包 tarball 匹配的 PACKAGES
条目(按包名称和版本);只有那些通过的才保留为有效。所有新颖的包 tarball 均由 write_PACKAGES
底层的标准机器完全处理,并添加生成的条目。最后,如果 latestOnly
是 TRUE
,则跨条目执行包版本修剪。
当 strict
为 FALSE
时,假定包 tarball 在其文件名中编码正确的元数据。与包 tarball 匹配的 PACKAGES
条目将保留为有效(不进行 MD5 校验和测试)。如果 latestOnly
是 TRUE
,则在处理新颖的 tarball 之前对保留条目和新颖的软件包 tarball 的完整集合执行包版本修剪,在某些情况下可以显著节省计算量和时间。在可选的修剪之后,任何相关的新颖包 tarball 都通过标准机器进行处理并添加到保留条目集中。
在这两种情况下,上述过程结束后,条目均按 Package
和 Version
的字符串串联按字母顺序排序。这应该与输入顺序 write_PACKAGES
输出匹配。
条目中的字段按如下顺序排列:规范字段 - 即在 CRAN 镜像上调用 available.packages
时显示为列的字段 - 首先按规范顺序出现,然后是任何非规范字段。
条目和字段重新排序后,PACKAGES
条目的最终数据库将写入所有三个 PACKAGES
文件,覆盖现有版本。
当 verbose.level
为 0
时,不会向用户显示任何额外消息。当它是 1
时,有关正在发生的情况的详细信息是通过消息传达的,但来自 write_PACKAGES
的底层机制是通过 verbose = FALSE
调用的。 verbose.level
为 2
时的行为与 verbose.level
1
相同,但 write_PACKAGE
的底层机制是用 verbose = TRUE
调用的,它将单独列出每个已处理的 tarball。
注意
虽然严格模式和非严格模式都可以在更新一小部分大型存储库时提供加速,但非严格模式要快得多,并且在假设 tarball 的文件名编码准确信息是安全的情况下建议使用。
注意
用户预计至少在某些操作系统上,type == "win.binary"
情况下的加速速度会比 write_PACKAGES
小得多。这是因为 write_PACKAGES
在此上下文中明显更快,而不是 update_PACKAGES
更慢。
例子
## Not run:
write_PACKAGES("c:/myFolder/myRepository") # on Windows
update_PACKAGES("c:/myFolder/myRepository") # on Windows
write_PACKAGES("/pub/RWin/bin/windows/contrib/2.9",
type = "win.binary") # on Linux
update_PACKAGES("/pub/RWin/bin/windows/contrib/2.9",
type = "win.binary") # on Linux
## End(Not run)
作者
Gabriel Becker (adapted from previous, related work by him in the switchr
package which is copyright Genentech, Inc.)
也可以看看
相关用法
- R update_pkg_po 准备包的翻译
- R undoc 查找未记录的对象
- R userdir R 用户目录
- R print.via.format 打印实用程序
- R prepare_Rd 准备用于渲染的解析 Rd 对象
- R startDynamicHelp 启动动态 HTML 帮助系统
- R getVignetteInfo 获取有关已安装 Vignettes 的信息
- R matchConcordance 源行和目标行之间的一致性
- R checkVignettes 检查包装插图
- R Rd2HTML 路转换器
- R HTMLheader 为 R 帮助生成标准 HTML 标头
- R vignetteInfo 有关晕影的基本信息
- R HTMLlinks 从包文档收集 HTML 链接
- R xgettext 从包中的 R 文件中提取可翻译消息
- R toTitleCase 将标题转换为标题大小写
- R package_native_routine_registration_skeleton 编写用于将本机例程注册添加到包的框架
- R parse_Rd 解析 Rd 文件
- R vignetteEngine 设置或获取晕影处理引擎
- R Rcmd R命令接口
- R Rdindex 从 Rd 文件生成索引
- R checkMD5sums 检查并创建 MD5 校验和文件
- R checkFF 检查外部函数调用
- R package_dependencies 包的依赖层次结构的计算
- R QC R 代码和/或文档的 QC 检查
- R psnice 获取或设置进程的优先级(良好性)
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Update Existing PACKAGES Files。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。