\name{buildRepDepGraph}
\alias{buildRepDepGraph}
\alias{pkgInstOrder}
\title{Functionality to manage repository dependency graphs}
\description{
These functions can be used to represent and manipulate dependency
graphs for a specified package repository.
}
\usage{
buildRepDepGraph(repository, depLevel = c("Depends", "Suggests"))
pkgInstOrder(pkg, repGraph)
}
\arguments{
\item{repository}{A URL to a \code{CRAN} style repository}
\item{depLevel}{One of \code{Depends} or \code{Suggests}, detailing
the level of dependencies to search. The \code{Suggests} value
includes everything in \code{Depends}.}
\item{pkg}{The package to get the installation order for}
\item{repGraph}{A \code{graph} object representing a repository, as
from \code{buildRepDepGraph}}
}
\value{
For \code{buildRepDepGraph}, a graph representing the dependency
structure of the specified repository, where an edge from node
\code{A} to node \code{B} represents a dependency on \code{B} by \code{A}.
For \code{pkgInstOrder}, a vector is returned, listing the appropriate
order one would take to install all of the necessary packages to
install the specified package. That is, it makes sure that at every
step, any package being installed does not depend on one that has not
yet been installed. This order can then be used with functions such
as \code{install.packages}.
}
\author{Jeff Gentry}
\examples{
if("FIXME"=="Jeff, we can't assume that we're always online - wh") {
repos <- getOption("repositories")["BIOC"] ## Get BIOC repos
buildRepDepGraph(repos)
}
}
\keyword{graphs}