當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R update.packages 將已安裝的軟件包與類似 CRAN 的存儲庫進行比較


R語言 update.packages 位於 utils 包(package)。

說明

old.packages 表示存儲庫上有(合適的)更高版本的軟件包,而 update.packages 提供下載和安裝此類軟件包。

new.packages 在存儲庫中查找尚未安裝的(合適的)軟件包,並可選擇提供它們進行安裝。

用法

update.packages(lib.loc = NULL, repos = getOption("repos"),
                contriburl = contrib.url(repos, type),
                method, instlib = NULL,
                ask = TRUE, available = NULL,
                oldPkgs = NULL, ..., checkBuilt = FALSE,
                type = getOption("pkgType"))

old.packages(lib.loc = NULL, repos = getOption("repos"),
             contriburl = contrib.url(repos, type),
             instPkgs = installed.packages(lib.loc = lib.loc, ...),
             method, available = NULL, checkBuilt = FALSE, ...,
             type = getOption("pkgType"))

new.packages(lib.loc = NULL, repos = getOption("repos"),
             contriburl = contrib.url(repos, type),
             instPkgs = installed.packages(lib.loc = lib.loc, ...),
             method, available = NULL, ask = FALSE, ...,
             type = getOption("pkgType"))

參數

lib.loc

字符向量說明要搜索的 R 庫樹的位置(並更新其中的包),或 NULL 用於所有已知的樹(請參閱 .libPaths )。

repos

字符向量,要使用的存儲庫的基本 URL,例如 CRAN 鏡像的 URL,例如 "https://cloud.r-project.org"

contriburl

存儲庫貢獻部分的 URL。如果您的存儲庫不完整,請使用此參數。覆蓋參數 repos 。與 type = "both" 不兼容。

method

下載方法參見download.file。如果提供非 NULL available,則不使用。

instlib

給出安裝包的庫目錄的字符串。

ask

邏輯指示是否要求用戶在下載和安裝之前選擇軟件包,或者字符串 "graphics" ,它會彈出一個小部件以允許用戶從可以更新的軟件包列表中(取消)選擇。後一個值僅適用於 GUI 版本為 select.list 的係統,否則等效於 ask = TRUEask 不控製通過 type = "both" 從源安裝軟件包之前提出的問題(請參閱選項 "install.packages.compile.from.source" )。

available

available.packages 列出存儲庫中可用的包,或 NULL 返回的對象,它對 available.packages 進行內部調用。與 type = "both" 不兼容。

checkBuilt

如果TRUE,在早期 major.minor 版本下構建的包R(例如:,3.4) 被視為‘old’。

oldPkgs

如果指定為非 NULL,update.packages() 僅考慮更新這些包。這可能是包名稱的字符向量或 old.packages 返回的矩陣。

instPkgs

默認情況下所有已安裝的軟件包 installed.packages(lib.loc = lib.loc) 。可以指定一個子集;目前,它必須采用與 installed.packages() 返回的相同(字符矩陣)格式。

...

destdirdependencies 等參數傳遞給 install.packagesignore_repo_cachemax_repo_cache_agenoCache 傳遞給 available.packagesinstalled.packages

type

字符,指示要下載和安裝的包的類型。請參閱install.packages

細節

old.packages比較來自的信息available.packages與那來自instPkgs(由計算installed.packages默認情況下)並報告存儲庫中具有較新版本的已安裝軟件包,或者,如果checkBuilt = TRUE,它們是在早期的次要版本下構建的R(例如在 3.3.x 下構建時運行R3.4.0)。 (對於二進製包類型,不會檢查存儲庫上的版本是否是在當前次要版本下構建的R,但它被宣傳為適合這個版本。)

new.packages 執行相同的比較,但報告存儲庫中可用的已卸載軟件包。如果 ask != FALSE ,它會詢問哪些軟件包應安裝在 lib.loc 的第一個元素中。

該集的主要函數是update.packages。首先創建 lib.loc 中找到的所有包的列表,並將其與存儲庫中可用的包進行比較。如果報告具有較新版本的ask = TRUE(默認)軟件包,並且對於每個軟件包,用戶可以指定是否應更新。如果是這樣,將從存儲庫下載軟件包並安裝在相應的庫路徑中(或instlib,如果指定)。

有關如何確定合適的可用包的列表,請參閱available.packages.available = NULL調用給available.packages(contriburl = contriburl, method = method)因此默認情況下過濾R版本、操作係統類型並刪除重複項。

update.packages 以不可見方式返回NULL

對於 old.packagesNULL 或每個包一行的矩陣,行名稱為包名稱,列名稱為 "Package""LibPath""Installed" (版本)、 "Built" (構建於其下的版本) 、"ReposVer""Repository"

對於 new.packages,在安裝任何通過 ask 選擇的包後,包名稱的字符向量。

警告

dependencies (傳遞給 install.packages )與 update.packages 一起使用時要小心,因為尚不清楚應在何處安裝新的依賴項。當前的實現僅允許在所有要更新的包都在單個庫中時使用該庫。

也可以看看

install.packagesavailable.packagesdownload.packagesinstalled.packagescontrib.url

options 下為 install.packages 列出的選項。

請參閱download.file 了解如何處理代理和其他選項來監視文件傳輸。

INSTALL , REMOVE , remove.packages , library , .packages , read.dcf

有關如何設置存儲庫的“R 安裝和管理”手冊。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Compare Installed Packages with CRAN-like Repositories。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。