install.packages {utils} | R Documentation |
Download and install packages from CRAN-like repositories or from local files.
install.packages(pkgs, lib, repos = getOption("repos"),
contriburl = contrib.url(repos, type),
method, available = NULL, destdir = NULL,
dependencies = NA, type = getOption("pkgType"),
configure.args = getOption("configure.args"),
configure.vars = getOption("configure.vars"),
clean = FALSE, Ncpus = getOption("Ncpus", 1L),
verbose = getOption("verbose"),
libs_only = FALSE, INSTALL_opts, quiet = FALSE,
keep_outputs = FALSE, ...)
pkgs |
character vector of the names of packages whose current versions should be downloaded from the repositories. If If this is missing or a zero-length character vector, a listbox of available packages is presented where possible in an interactive R session. |
lib |
character vector giving the library directories where to
install the packages. Recycled as needed. If missing, defaults to
the first element of |
repos |
character vector, the base URL(s) of the repositories
to use, e.g., the URL of a CRAN mirror such as
Can be |
contriburl |
URL(s) of the contrib sections of the repositories. Use this
argument if your repository mirror is incomplete, e.g., because
you burned only the ‘contrib’ section on a CD, or only have
binary packages. Overrides argument |
method |
download method, see |
available |
an object as returned by |
destdir |
directory where downloaded packages are stored. If it is
|
dependencies |
logical indicating to also install uninstalled
packages which these packages depend on/link to/import/suggest
(and so on recursively). Not used if Only supported if The default,
In all of these, |
type |
character, indicating the type of package to download and install. Possible values are (currently) The default is the appropriate binary type on Windows and on the
CRAN binary OS X distributions, otherwise |
configure.args |
(Used only for source installs.) A character vector or a named list.
If a character vector with no names is supplied, the elements are
concatenated into a single string (separated by a space) and used as
the value for the --configure-args flag in the call to
A named list can be used also to the same effect, and that allows multi-element character strings for each package which are concatenated to a single string to be used as the value for --configure-args. |
configure.vars |
(Used only for source installs.) Analogous to |
clean |
a logical value indicating whether to specify
to add the --clean flag to the call to
|
Ncpus |
the number of parallel processes to use for a parallel
install of more than one source package. Values greater than one
are supported if the |
verbose |
a logical indicating if some “progress report” should happen. |
libs_only |
a logical value: should the --libs-only option be used to
install only additional sub-architectures? (See also
|
INSTALL_opts |
an optional character vector of additional option(s) to be passed to
Can also be a named list of character vectors of to be used as additional options, with names the respective package names. |
quiet |
logical: if true, reduce the amount of output. |
keep_outputs |
a logical: if true, keep the outputs from installing source packages in the current working directory, with the names of the output files the package names with ‘.out’ appended. Alternatively, a character string giving the directory where to save the outputs. Ignored when installing from local files. |
... |
Arguments to be passed to |
R packages are primarily distributed as source packages, but
binary packages (a packaging up of the installed package) are
also supported, and the type most commonly used on Windows and by
the CRAN distributions for OS X. This function can install either
type where supported, either by downloading a file from a repository
or from a local file. The default type is given by
getOption("pkgType")
: this defaults to "source"
apart from under Windows or a CRAN binary distribution for OS X.
This is the main function to install packages. It takes a vector of
names and a destination library, downloads the packages from the
repositories and installs them. (If the library is omitted it
defaults to the first directory in .libPaths()
, with a message
if there is more than one.) If lib
is omitted or is of length
one and is not a (group) writable directory, in interactive use the
code offers to create a personal library tree (the first element of
Sys.getenv("R_LIBS_USER")
) and install there.
For source packages from a repository an attempt is made to
install the packages in an order that respects their dependencies.
This does assume that all the entries in lib
are on the default
library path for installs (set by R_LIBS).
You are advised to run update.packages
before
install.packages
to ensure that any already installed
dependencies have their latest versions.
Argument libs_only = TRUE
is supported for source installs and for
Windows binary installs.
For binary installs, the function also checks for the availability of a source package on the same repository, and reports if the source package has a later version, or is available but no binary version is. This check can be suppressed by
options(install.packages.check.source = "no")
and should be if there is a partial repository containing only binary files.
Invisible NULL
.
There are various options for locking: these differ between source and binary installs.
By default for a source install, the library directory is
‘locked’ by creating a directory ‘00LOCK’ within it. This
has two purposes: it prevents any other process installing into that
library concurrently, and is used to store any previous version of the
package to restore on error. A finer-grained locking is provided by
the option --pkglock which creates a separate lock for each
package: this allows enough freedom for parallel
installation. Per-package locking is the default when installing a
single package, and for multiple packages when Ncpus > 1L
.
Finally locking (and restoration on error) can be suppressed by
--no-lock.
For an OS X or Windows binary install, no locking is done by
default. Setting argument lock
to TRUE
(it defaults to
the value of getOption("install.lock", FALSE)
) will use
per-directory locking as described for source installs: if the value
is "pkglock"
per-package locking will be used.
If package locking is used on Windows with libs_only = TRUE
and
the installation fails, the package will be restored to its previous
state.
Note that it is possible for the package installation to fail so badly
that the lock directory is not removed: this inhibits any further
installs to the library directory (or for --pkglock
, of the
package) until the lock directory is removed manually.
Parallel installs are attempted if pkgs
has length greater than
one and Ncpus > 1
. It makes use of a parallel make
,
so the make
specified (default make
) when R was
built must be capable of supporting make -j n
: GNU make
and dmake
do, but FreeBSD and Solaris make
do not:
if necessary environment variable MAKE can be set for the
current session to select a suitable make
.
install.packages
needs to be able to compute all the
dependencies of pkgs
from available
, including if one
element of pkgs
depends indirectly on another. This means that
if for example you are installing CRAN packages which depend
on Bioconductor packages which in turn depend on CRAN
packages, available
needs to cover both CRAN and
Bioconductor packages.
Some binary distributions of R have INSTALL
in a separate
bundle, e.g. an R-devel
RPM. install.packages
will
give an error if called with type = "source"
on such a system.
Some binary Linux distributions of R can be installed on a machine without the tools needed to install packages: a possible remedy is to do a complete install of R which should bring in all those tools as dependencies.
update.packages
,
available.packages
,
download.packages
,
installed.packages
,
contrib.url
.
See download.file
for how to handle proxies and
other options to monitor file transfers.
INSTALL
, REMOVE
, remove.packages
,
library
, .packages
, read.dcf
The ‘R Installation and Administration’ manual for how to set up a repository.
## Not run:
## A Linux example for Fedora's layout
install.packages(c("ncdf4", "RNetCDF"),
configure.args = c(RNetCDF = "--with-netcdf-include=/usr/include/udunits2"))
## End(Not run)