Rev 89824 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/utils/man/update.packages.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2026 R Core Team% Distributed under GPL 2 or later\name{update.packages}\alias{update.packages}\alias{old.packages}\alias{new.packages}\title{Compare Installed Packages with CRAN-like Repositories}\description{\code{old.packages} indicates packages which have a (suitable) laterversion on the repositories whereas \code{update.packages} offers todownload and install such packages.\code{new.packages} looks for (suitable) packages on the repositoriesthat are not already installed, and optionally offers them forinstallation.}\usage{update.packages(lib.loc = NULL, repos = getOption("repos"),contriburl = contrib.url(repos, type),method, instlib = NULL,ask = TRUE, available = NULL,oldPkgs = NULL, \dots, 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, \dots),method, available = NULL, checkBuilt = FALSE, \dots,type = getOption("pkgType"))new.packages(lib.loc = NULL, repos = getOption("repos"),contriburl = contrib.url(repos, type),instPkgs = installed.packages(lib.loc = lib.loc, \dots),method, available = NULL, ask = FALSE, \dots,type = getOption("pkgType"))}\arguments{\item{lib.loc}{character vector describing the location of Rlibrary trees to search through (and update packages therein), or\code{NULL} for all known trees (see \code{\link{.libPaths}}).}\item{repos}{character vector, the base URL(s) of the repositoriesto use, e.g., the URL of a CRAN mirror such as\code{"https://cloud.r-project.org"}.}\item{contriburl}{URL(s) of the contrib sections of therepositories. Use this argument if your repository isincomplete. Overrides argument \code{repos}.Incompatible with \code{type = "both"}.}\item{method}{Download method, see \code{\link{download.file}}.Unused by \code{old.packages} if a non-\code{NULL} \code{available}is supplied.}\item{instlib}{character string giving the library directory where toinstall the packages.}\item{ask}{logical indicating whether to ask the user to selectpackages before they are downloaded and installed, or the characterstring \code{"graphics"}, which brings up a widget to allow the userto (de)select from the list of packages which could be updated.The latter value only works on systems with a GUI version of\code{\link{select.list}}, and is otherwise equivalent to\code{ask = TRUE}. \code{ask} does not control questions asked beforeinstalling packages from source via \code{type = "both"} (see option\code{"install.packages.compile.from.source"}).}\item{available}{an object as returned by \code{\link{available.packages}}listing packages available at the repositories, or \code{NULL} whichmakes an internal call to \code{available.packages}.Incompatible with \code{type = "both"}.}\item{checkBuilt}{If \code{TRUE}, a package built under an earliermajor.minor version of \R (e.g., \code{3.4}) is considered to be\sQuote{old}.}\item{oldPkgs}{if specified as non-NULL, \code{update.packages()} only considersthese packages for updating. This may be a character vectorof package names or a matrix as returned by \code{old.packages}.}\item{instPkgs}{by default all installed packages,\code{\link{installed.packages}(lib.loc = lib.loc)}. A subset can bespecified; currently this must be in the same (character matrix)format as returned by \code{installed.packages()}.}\item{\dots}{Arguments such as \code{destdir} and \code{dependencies} to bepassed to \code{\link{install.packages}} and\code{ignore_repo_cache}, \code{max_repo_cache_age} and\code{noCache} to \code{\link{available.packages}} or\code{\link{installed.packages}}.}\item{type}{character, indicating the type of package to download andinstall. See \code{\link{install.packages}}.}}\details{\code{old.packages} compares the information from\code{\link{available.packages}} with that from \code{instPkgs} (computed by\code{\link{installed.packages}} by default) and reports installedpackages that have newer versions on the repositories or, if\code{checkBuilt = TRUE}, that were built under an earlier minorversion of \R (for example built under 3.3.x when running \R 3.4.0).In either case, for binary package types the timestamp of the\code{"Built"} field is also used and a package is considered new ifthe built timestamp in the repository is more recent than the one inthe installed package. Timestamps not in ISO format are silentlyignored.(For binary package types there is no check that the version on therepository was built under the current minor version of \R,but it is advertised as being suitable for this version.)\code{new.packages} does the same comparison but reports uninstalledpackages that are available at the repositories. If\code{ask != FALSE} it asks which packages should be installed in thefirst element of \code{lib.loc}.The main function of the set is \code{update.packages}. First a listof all packages found in \code{lib.loc} is created and compared withthose available at the repositories. If \code{ask = TRUE} (thedefault) packages with a newer version are reported and for each onethe user can specify if it should be updated. If so the packages aredownloaded from the repositories and installed in the respectivelibrary path (or \code{instlib} if specified).For how the list of suitable available packages is determined see\code{\link{available.packages}}. \code{available = NULL} make a callto \code{available.packages(contriburl = contriburl, method = method)}and hence by default filters on \R version, OS type and removesduplicates.}\value{\code{update.packages} returns \code{NULL} invisibly.For \code{old.packages}, \code{NULL} or a matrix with one row perpackage, row names the package names and column names\code{"Package"}, \code{"LibPath"}, \code{"Installed"} (the version),\code{"Built"} (the eponymous \file{DESCRIPTION} field of installed packages),\code{"ReposVer"} and \code{"Repository"}.For \code{new.packages} a character vector of package names,\emph{after} any selected \emph{via} \code{ask} have been installed.}\section{Warning}{Take care when using \code{dependencies} (passed to\code{\link{install.packages}}) with \code{update.packages},for it is unclear where new dependencies should be installed. Thecurrent implementation will only allow it if all the packages to beupdated are in a single library, when that library will be used.}\seealso{\code{\link{install.packages}},\code{\link{available.packages}}, \code{\link{download.packages}},\code{\link{installed.packages}}, \code{\link{contrib.url}}.The options listed for \code{install.packages} under\code{\link{options}}.See \code{\link{download.file}} for how to handle proxies andother options to monitor file transfers.\code{\link{INSTALL}}, \code{\link{REMOVE}}, \code{\link{remove.packages}},\code{\link{library}}, \code{\link{.packages}}, \code{\link{read.dcf}}Section \manual{R-admin}{Setting up a package repository}.}\keyword{utilities}