【R】R包 package 的安装(install.packages函数详解)
如何安装R语言包详见: Linux安装R语言包
使用公共路径上的R软件,如何拥有自己的library:
R中用.libPaths()函数查看lib路径,如果有多个lib,install.packages()默认是安装在第一个目录下
install.packages
Description
Download and install packages from CRAN-like repositories or from local files.
Usage
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),
libs_only = FALSE, INSTALL_opts, ...)
Arguments
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 URLs 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 only if your repository mirror is incomplete, e.g., because you burned only the ‘contrib’ section on a CD. 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,
|
type |
character, indicating the type of package to download and install. Possible values are The default is the appropriate binary type on Windows and on the CRAN binary Mac OS X distribution, otherwise |
configure.args |
(not used on Windows) 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 |
(not used on Windows) 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 |
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 |
... |
Arguments to be passed to |
Details
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 from the CRAN distribution for Mac 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 Mac 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, the code offers to create a personal library tree (the first element of Sys.getenv("R_LIBS_USER")
) and install there. Detection of a writable directory is problematic on Windows: see the ‘Note’ section.
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).
Using packages with type = "source"
always works on Windows provided the package contains no C/C++/Fortran code that needs compilation. Otherwise you will need to have installed the Rtools collection as described in the ‘R for Windows FAQ’ and you must have the PATH environment variable set up as required by Rtools.
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 R running at the same time and sharing a library) it will not detect a problem, but the installation may fail.
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.
Value
Invisible NULL
.
Locking
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 a Mac 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
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.
Note
install.packages
tries to detect if you have write permission on the library directories specified, but Windows reports unreliably. If there is only one library directory (the default), R tries to find out by creating a test directory, but even this need not be the whole story. Under Windows Vista and later you may have permission to write in a library directory but lack permission to write binary files (such as ‘.dll’ files) there. See the ‘R for Windows FAQ’ for workarounds.
See Also
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.
Examples
## Not run: install.packages( c("XML_0.99-5.tar.gz",
"http://www.cnblogs.com/Interfaces/Perl/RSPerl_0.8-0.tar.gz"), repos = NULL,
configure.args = c(XML = '--with-xml-config=xml-config',
RSPerl = "--with-modules='IO Fcntl'")) ## End(Not run)