Rev 88338 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/utils/man/INSTALL.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2025 R Core Team% Distributed under GPL 2 or later\name{INSTALL}\alias{INSTALL}\alias{R_INSTALL_TAR}\alias{R_INSTALL_STAGED}\title{Install Add-on Packages}\description{Utility for installing add-on packages.}\usage{\special{R CMD INSTALL [options] [-l lib] pkgs}}\arguments{\item{pkgs}{a space-separated list with the path names of the packages to beinstalled. See \sQuote{Details}.}\item{lib}{the path name of the \R library tree to install to. Alsoaccepted in the form \samp{--library=lib}. Paths including spaces shouldbe quoted, using the conventions for the shell in use.}\item{options}{a space-separated list of options through which inparticular the process for building the help files can be controlled.Use \command{R CMD INSTALL --help} for the full current list of options.}}\details{This will stop at the first error, so if you want all the \code{pkgs}to be tried, call this via a shell loop.If used as \command{R CMD INSTALL pkgs} without explicitly specifying\code{lib}, packages are installed into the library tree rooted at thefirst directory in the library path which would be used by \R run inthe current environment.To install into the library tree \code{\var{lib}}, use\command{R CMD INSTALL -l \var{lib} \var{pkgs}}.This prepends \code{lib} to the library path forduration of the install, so required packages in the installationdirectory will be found (and used in preference to those in otherlibraries).#ifdef windowsIt is possible that environment variable \env{TMPDIR}will need to be set (although \command{R CMD} tries to set it suitablyotherwise): use forward slashes and no spaces for the path to awritable directory.#endifBoth \code{lib} and the elements of \code{pkgs} may be absolute orrelative path names of directories. \code{pkgs} may also containnames of package archive files: these are then extracted to atemporary directory. These are tarballs containing a singledirectory, optionally compressed by \command{gzip}, \command{bzip2},\command{xz} or \command{compress}.#ifdef unixFinally, binary package archive files (as created by\command{R CMD INSTALL --build}) can be supplied.#endif#ifdef windowsFinally, zipped binary packages (as created by\command{R CMD INSTALL --build}) can be supplied.#endifTarballs are by default unpackaged by the internal \code{\link{untar}}function: if needed an external \command{tar} command can be specifiedby the environment variable \env{R_INSTALL_TAR}: please ensure that itcan handle the type of compression used on the tarball. (This issometimes needed for tarballs containing invalid or unsupportedsections, and can be faster on very large tarballs. Setting\env{R_INSTALL_TAR} to \samp{tar.exe} has been needed to overcomepermissions issues on some Windows systems.)The package sources can be cleaned up prior to installation by\option{--preclean} or after by \option{--clean}: cleaning isessential if the sources are to be used with more than onearchitecture or platform.#ifdef unixSome package sources contain a \file{configure} script that can bepassed arguments or variables via the option \option{--configure-args}and \option{--configure-vars}, respectively, if necessary. The latteris useful in particular if libraries or header files needed for thepackage are in non-system directories. In this case, one can use theconfigure variables \code{LIBS} and \code{CPPFLAGS} to specify theselocations (and set these via \option{--configure-vars}), see section\sQuote{Configuration variables} in\sQuote{R Installation and Administration} for more information.(If these are used more thanonce on the command line they are concatenated.) The configuremechanism can be bypassed using the option \option{--no-configure}.#endifIf the attempt to install the package fails, leftovers are removed.If the package was already installed, the old version is restored.This happens either if a command encounters an error or if theinstall is interrupted from the keyboard: after cleaning up the scriptterminates.For details of the locking which is done, see the section\sQuote{Locking} in the help for \code{\link{install.packages}}.#ifdef windowsOption \option{--build} can be used to zip up the installed packagefor distribution.#endif#ifdef unixOption \option{--build} can be used to tar up the installed packagefor distribution as a binary package (as used on macOS). This is doneby \code{utils::tar} unless environment variable \env{R_INSTALL_TAR}is set.#endifBy default a package is installed with static HTML help pages if andonly if \R was: use options \option{--html} and \option{--no-html} tooverride this.Packages are not by default installed keeping the source formatting(see the \code{keep.source} argument to \code{\link{source}}): thiscan be enabled by the option \option{--with-keep.source} or by settingenvironment variable \env{R_KEEP_PKG_SOURCE} to \code{yes}.Specifying the \option{--install-tests} option copies the contentsof the \file{tests} directory into the package installation. If the\env{R_ALWAYS_INSTALL_TESTS} environment variable is set to a truevalue, the tests will be installed even if \option{--install-tests} isomitted.Use \command{R CMD INSTALL --help} for concise usage information,including all the available options.}\note{The options do not have to precede \samp{pkgs} on the command line,although it will be more legible if they do. All the options areprocessed before any packages, and where options have conflictingeffects the last one will win.#ifdef unixSome parts of the operation of \code{INSTALL} depend on the \Rtemporary directory (see \code{\link{tempdir}}, usually under\file{/tmp}) having both write and execution access to the accountrunning \R. This is usually the case, but if \file{/tmp} has beenmounted as \code{noexec}, environment variable \env{TMPDIR} may needto be set to a directory from which execution is allowed.For most recent builds of \R the internal \code{untar} will handletarballs compressed by \command{zstd}: most (but not all) external\command{tar} commands will handle \command{ztd} compression andothers such as \command{lz4}.#endif}\section{Sub-architectures}{An \R installation can support more than one sub-architecture:currently this is most commonly used for 32- and 64-bit builds onWindows.For such installations, the default behaviour is to try to installsource packages for all installed sub-architectures unless the packagehas a configure script or a \file{src/Makefile} (or\file{src/Makefile.win} on Windows), when only compiled code for thesub-architecture running \command{R CMD INSTALL} is installed.To install a source package with compiled code only for thesub-architecture used by \command{R CMD INSTALL}, use\option{--no-multiarch}. To install just the compiled code foranother sub-architecture, use \option{--libs-only}.To install for all available sub-architectures,%% If the configure script is known to work for both Windows architectures,%% use flag \option{--force-biarch} (and packages can specify this%% \emph{via} a \samp{Biarch: yes} field in their \code{DESCRIPTION} files).a single tarball can be installed with\preformatted{R CMD INSTALL --merge-multiarch mypkg_version.tar.gz}}\section{Staged installation}{The default way to install source packages changed in \R 3.6.0, sopackages are first installed to a temporary location and then (ifsuccessful) moved to the destination library directory. Some olderpackages were written in ways that assume direct installation to thedestination library.Staged installation can currently be overridden by having a line\samp{StagedInstall: no} in the package's \file{DESCRIPTION} file,\emph{via} flag \option{--no-staged-install} or by setting environmentvariable \env{R_INSTALL_STAGED} to a false value(e.g.\sspace{}\samp{false} or \samp{no}).Staged installation requires either \option{--pkglock} or\option{--lock}, one of which is used by default.}\seealso{\code{\link{REMOVE}};\code{\link{.libPaths}} for information on using several library trees;\code{\link{install.packages}} for \R-level installation of packages;\code{\link{update.packages}} for automatic update of packages usingthe Internet or a local repository.The chapter on \sQuote{Add-on packages} in\sQuote{R Installation and Administration}and the chapter on \sQuote{Creating R packages} in\sQuote{Writing R Extensions}#ifdef windows(on the Help menu in \code{RGui}),#endif\emph{via} \code{\link{RShowDoc}} or in the \file{doc/manual}subdirectory of the \R source tree.}\keyword{utilities}