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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。