blob: 1bd553202b8b8ec97ea752b7b13ecadf5328e773 [file] [log] [blame]
% File src/library/base/man/zpackages.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2012 R Core Team
% Distributed under GPL 2 or later
\name{zpackages}
\title{Listing of Packages}
\alias{.packages}
\description{
\code{.packages} returns information about package availability.
}
\usage{
.packages(all.available = FALSE, lib.loc = NULL)
}
\arguments{
\item{all.available}{logical; if \code{TRUE} return a character vector
of all available packages in \code{lib.loc}.}
\item{lib.loc}{a character vector describing the location of \R
library trees to search through, or \code{NULL}. The default value
of \code{NULL} corresponds to \code{\link{.libPaths}()}.}
}
\details{
\code{.packages()} returns the names of the currently
attached packages \emph{invisibly} whereas
\code{.packages(all.available = TRUE)} gives (visibly) \emph{all}
packages available in the library location path \code{lib.loc}.
For a package to be regarded as being \sQuote{available} it must have valid
metadata (and hence be an installed package). However, this will
report a package as available if the metadata does not match the
directory name: use \code{\link{find.package}} to confirm that the
metadata match or \code{\link{installed.packages}} for a much slower
but more comprehensive check of \sQuote{available} packages.
}
\note{
\code{.packages(all.available = TRUE)} is not a way to find out if a
small number of packages are available for use: not only is it
expensive when thousands of packages are installed, it is an
incomplete test. See the help for \code{\link{find.package}} for why
\code{\link{require}} should be used.
}
\value{
A character vector of package base names, invisible unless
\code{all.available = TRUE}.
}
\author{
R core;
Guido Masarotto for the \code{all.available = TRUE} part of
\code{.packages}.
}
\seealso{
\code{\link{library}}, \code{\link{.libPaths}},
\code{\link{installed.packages}}.
}
\examples{
(.packages()) # maybe just "base"
.packages(all.available = TRUE) # return all available as character vector
require(splines)
(.packages()) # "splines", too
detach("package:splines")
}
\keyword{data}