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, ...)
If repos = NULL
, a character vector of
#ifdef windows
file paths of http://
and file://
URLs are also accepted
and the files will be downloaded and installed from local copies.)
Source directories or file paths or URLs of archives may be
specified with type = "source"
, but some packages need
suitable tools installed (see the http://
and file://
URLs are also
accepted and the files will be downloaded and installed from local
copies.) On a CRAN build of Rfor OS X these can be
If this is missing or a zero-length character vector, a listbox of available packages is presented where possible in an interactive Rsession.
.libPaths()
."http://cran.us.r-project.org"
. For more details on
supported URL schemes see url
. Can be NULL
to install from local files, directories or URLs:
this will be inferred by extension from pkgs
if of length one.
repos
.
Incompatible with type = "both"
.download.file
. Unused if
a non-NULL
available
is supplied.available.packages
listing packages available at the repositories, or NULL
when
the function makes an internal call to available.packages
.
Incompatible with type = "both"
.NULL
(the default) a subdirectory
downloaded_packages
of the session temporary
directory will be used (and the files will be deleted
at the end of the session).repos
= NULL
. Can also be a character vector, a subset of
c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances")
. Only supported if lib
is of length one (or missing),
so it is unambiguous where to install the dependent packages. If
this is not the case it is ignored, with a warning.
The default, NA
, means
c("Depends", "Imports", "LinkingTo")
.
TRUE
means to use
c("Depends", "Imports", "LinkingTo", "Suggests")
for
pkgs
and
c("Depends", "Imports", "LinkingTo")
for added dependencies:
this installs all the packages needed to run pkgs
, their
examples, tests and vignettes (if the package author specified them
correctly).
In all of these, "LinkingTo"
is omitted for binary packages.
"source"
except on Windows and some OS X
builds: see the section on 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
for flag , which is used to set environment
variables for the Sys.getenv("MAKE", "make")
accepts argument -k -j
Ncpus
.INSTALL_opts
.) This can also be used on Windows to install
just the DLL(s) from a binary package, e.g.c("--html", "--no-multiarch")
.Can also be a named list of character vectors to be used as additional options, with names the respective package names.
download.file
or to the
functions for binary installs on OS X and Windows (which accept
an argument "lock"
: see the section on NULL
. Possible values of type
are (currently) "source"
,
"mac.binary"
, "mac.binary.mavericks"
and
"win.binary"
: the appropriate binary type where
supported can also be selected as "binary"
.
For a binary install from a repository, the function 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 using
options(install.packages.check.source = "no")
and should be if there is a partial repository containing only binary
files.
An alternative (and the current default) is "both"
which means
getOption("install.packages.compile.from.source")
.
type = "both"
will be silently changed to "binary"
if
either contriburl
or available
is specified.
Using packages with type = "source"
always works provided the
package contains no C/C++/Fortran code that needs compilation.
#ifdef windows
Otherwise you will need to have installed the Rtools
collection as described in the
For a 32/64-bit installation of Ron Windows, a small minority of
packages with compiled code need either INSTALL_opts =
"--force-biarch"
or INSTALL_opts = "--merge-multiarch"
for a
source installation. (It is safe to always set the latter when
installing from a repository or tarballs, although it will be a little
slower.)
When installing a binary package, install.packages
will abort
the install if it detects that the package is already installed and is
currently in use. In some circumstances (e.g., multiple instances of
Rrunning at the same time and sharing a library) it will not detect a
problem, but the installation may fail as Windows locks files in use.
#endif
#ifdef unix
Otherwise, on OS X you otherwise need to have installed the
By default for a source install, the library directory is
Ncpus > 1L
.
Finally locking (and restoration on error) can be suppressed by
.
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.
pkgs
has length greater than
one and Ncpus > 1
. It makes use of a parallel make
specified (default make -j n
: GNU 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.
.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.
#ifdef windows
Detection of a writable directory is problematic on Windows: see the
For installs 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 environment variable
You are advised to run update.packages
before
install.packages
to ensure that any already installed
dependencies have their latest versions.
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
## A Linux example for Fedora's layout of udunits2 headers.
install.packages(c("ncdf4", "RNetCDF"),
configure.args = c(RNetCDF = "--with-netcdf-include=/usr/include/udunits2"))
Run the code above in your browser using DataCamp Workspace