Restore a project's dependencies from a lockfile, as previously generated by
snapshot()
.
Usage
restore(
project = NULL,
...,
library = NULL,
lockfile = NULL,
packages = NULL,
exclude = NULL,
rebuild = FALSE,
repos = NULL,
clean = FALSE,
prompt = interactive()
)
Arguments
- project
The project directory. If
NULL
, then the active project will be used. If no project is currently active, then the current working directory is used instead.- ...
Unused arguments, reserved for future expansion. If any arguments are matched to
...
,renv
will signal an error.- library
The library paths to be used during restore. See Library for details.
- lockfile
The lockfile to be used for restoration of the associated project. When
NULL
, the most recently generated lockfile for this project is used.- packages
A subset of packages recorded in the lockfile to restore. When
NULL
(the default), all packages available in the lockfile will be restored. Any required recursive dependencies of the requested packages will be restored as well.- exclude
A subset of packages to be excluded during restore. This can be useful for when you'd like to restore all but a subset of packages from a lockfile. Note that if you attempt to exclude a package which is required as the recursive dependency of another package, your request will be ignored.
- rebuild
Force packages to be rebuilt, thereby bypassing any installed versions of the package available in the cache? This can either be a boolean (indicating that all installed packages should be rebuilt), or a vector of package names indicating which packages should be rebuilt.
- repos
The repositories to use during restore, for packages installed from CRAN or another similar R package repository. When set, this will override any repositories declared in the lockfile. See also the
repos.override
option in config for an alternate way to provide a repository override.- clean
Boolean; remove packages not recorded in the lockfile from the target library? Use
clean = TRUE
if you'd like the library state to exactly reflect the lockfile contents afterrestore()
.- prompt
Boolean; prompt the user before taking any action? For backwards compatibility,
confirm
is accepted as an alias forprompt
.
Package Repositories
By default, the package repositories encoded in the lockfile will be used
during restore, as opposed to the repositories that might already
be set in the current session (through getOption("repos")
). If you'd like
to override the repositories used by renv
during restore, you can use,
for example:
See also the repos.override
option in config for an alternate way to
provide a repository override.
Library
When renv::restore()
is called, packages from the lockfile are compared
against packages currently installed in the library paths specified by
library
. Any packages which have changed will then be installed into the
default library. If clean = TRUE
, then packages that exist within the
default library, but aren't recorded in the lockfile, will be removed as
well.
Examples
if (FALSE) {
# disable automatic snapshots
auto.snapshot <- getOption("renv.config.auto.snapshot")
options(renv.config.auto.snapshot = FALSE)
# initialize a new project (with an empty R library)
renv::init(bare = TRUE)
# install digest 0.6.19
renv::install("digest@0.6.19")
# save library state to lockfile
renv::snapshot()
# remove digest from library
renv::remove("digest")
# check library status
renv::status()
# restore lockfile, thereby reinstalling digest 0.6.19
renv::restore()
# restore automatic snapshots
options(renv.config.auto.snapshot = auto.snapshot)
}