INSTALL {utils}R Documentation

Install Add-on Packages


Utility for installing add-on packages.


R CMD INSTALL [options] [-l lib] pkgs


pkgs a space-separated list with the path names of the packages to be installed.
lib the path name of the R library tree to install to. Also accepted in the form --library=lib.
options a space-separated list of options through which in particular the process for building the help files can be controlled. Most options should only be given once, and paths including spaces should be quoted. Use R CMD INSTALL --help for the full current list of options.


This will stop at the first error, so if you want all the pkgs to be tried, call this via a shell loop.

If used as R CMD INSTALL pkgs without explicitly specifying lib, packages are installed into the library tree rooted at the first directory in the library path which would be used by R run in the current environment.

To install into the library tree lib, use R CMD INSTALL -l lib pkgs. This prepends lib to the library path for duration of the install, so required packages in the installation directory will be found (and used in preference to those in other libraries).

Both lib and the elements of pkgs may be absolute or relative path names of directories. pkgs may also contain names of package/bundle archive files: these are then extracted to a temporary directory. Precisely what forms are accepted depends on the system (see untar): this will certainly include filenames of the form ‘pkg_version.tar.gz’ as obtained from CRAN, ‘pkg.tgz’ and ‘pkg.tar.gz’, usually ‘pkg_version.tar.bz2’ and ‘pkg.tar.bz2’, and on systems with recent toolsets, ‘pkg_version.ext’ for any supported extension such as ‘tar.lzma’ and ‘tar.xz’. Finally, binary package/bundle archive files (as created by R CMD build --binary) can be supplied.

The package sources can be cleaned up prior to installation by --preclean or after by --clean: cleaning is essential if the sources are to be used with more than one architecture or platform.

Some package sources contain a ‘configure’ script that can be passed arguments or variables via the option --configure-args and --configure-vars, respectively, if necessary. The latter is useful in particular if libraries or header files needed for the package are in non-system directories. In this case, one can use the configure variables LIBS and CPPFLAGS to specify these locations (and set these via --configure-vars), see section “Configuration variables” in “R Installation and Administration” for more information. (If these are used more than once on the command line they are concatenated.) The configure mechanism can be bypassed using the option --no-configure.

If 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 the install is interrupted from the keyboard: after cleaning up the script terminates.

By default 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/bundle to restore on error. A finer-grained locking is provided by the option --pkglock which creates a separate lock for each package/bundle: this allows enough freedom for careful parallel installation as done by install.packages(Ncpus = n) with n > 1. Finally locking (and restoration on error) can be suppressed by --no-lock or --unsafe (two names for the same option).

Some platforms (notably Mac OS X) support sub-architectures in which binaries for different CPUs are installed within the same library tree. For such installations, the default behaviour is to try to build packages for all installed sub-architectures unless the package has a configure script or a ‘src/Makefile’, when only the sub-architecture running R CMD INSTALL is used. To use only that sub-architecture, use --no-multiarch. To install just the compiled code for another sub-architecture, use --libs-only.

Use R CMD INSTALL --help for concise usage information, including all the available options

Packages using the methods package

Packages that require the methods package and make use functions such as setMethod or setClass, should be installed using lazy-loading: use the field LazyLoad in the ‘DESCRIPTION’ file to ensure this.


Some parts of the operation of INSTALL depend on the R temporary directory (see tempdir, usually under ‘/tmp’) having both write and execution access to the account running R. This is usually the case, but if ‘/tmp’ has been mounted as noexec, environment variable TMPDIR may need to be set to a directory from which execution is allowed.

See Also

REMOVE and library for information on using several library trees; update.packages for automatic update of packages using the internet (or other R level installation of packages, such as by install.packages).

The section on “Add-on packages” in “R Installation and Administration” and the chapter on “Creating R packages” in “Writing R Extensions” RShowDoc and the ‘doc/manual’ subdirectory of the R source tree).

[Package utils version 2.10.1 Index]