Rev 70608 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/tools/man/package_dependencies.Rd% Part of the R package, https://www.R-project.org% Copyright 2012-2015 R Core Team% Distributed under GPL 2 or later\name{package_dependencies}\alias{package_dependencies}\title{Computations on the Dependency Hierarchy of Packages}\description{Find (recursively) dependencies or reverse dependencies of packages.}\usage{package_dependencies(packages = NULL, db = NULL,which = c("Depends", "Imports", "LinkingTo"),recursive = FALSE, reverse = FALSE, verbose = getOption("verbose"))}\arguments{\item{packages}{a character vector of package names.}\item{db}{character matrix as from \code{\link{available.packages}()}(with the default \code{NULL} the results of this call)or data frame variants thereof. Alternatively, a package databaselike the one available from\url{https://cran.r-project.org/web/packages/packages.rds}.}\item{which}{a character vector listing the types ofdependencies, a subset of\code{c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances")}.Character string \code{"all"} is shorthand for that vector,character string \code{"most"} for the same vector without\code{"Enhances"}.}\item{recursive}{logical: should (reverse) dependencies of (reverse)dependencies (and so on) be included?}\item{reverse}{logical: if \code{FALSE} (default), regulardependencies are calculated, otherwise reverse dependencies.}\item{verbose}{logical indicating if output should monitor the packagesearch cycles.}}\value{Named list with one element for each package in argument \code{packages},each consists of a character vector naming the (recursive) (reverse) dependenciesof that package.For given packages which are not found in the db, \code{NULL} entries are returned,as opposed to \code{character(0)} entries which indicate no dependencies.}\seealso{\code{\link{dependsOnPkgs}}, and \code{\link{package.dependencies}} for checkingdependencies.}\examples{\donttest{myPkgs <- c("MASS", "Matrix", "KernSmooth", "class", "cluster", "codetools")pdb <- available.packages()system.time(dep1 <- package_dependencies(myPkgs, db = pdb) # all arguments at default) # very fastutils::str(dep1, vec.len=10)system.time( ## reverse dependencies, recursively --- takes much longer:deps <- package_dependencies(myPkgs, db = pdb,which = c("Depends", "Imports", "LinkingTo", "Suggests"),recursive = TRUE, reverse = TRUE)) # seen ~ 10 secondslengths(deps) # 2015-01-14: all are 7040, but codetools with 7046}% dont test}\keyword{utilities}