Customize the paths that renv
uses for global state storage.
If your project depends on one or R packages that are not available in any
remote location, you can still provide a locally-available tarball for renv
to use during restore. By default, these packages should be made available in
the folder as specified by the RENV_PATHS_LOCAL
environment variable. The
package sources should be placed in a file at one of these locations:
${RENV_PATHS_LOCAL}/<package>/<package>_<version>.<ext>
<project>/renv/local/<package>/<package>_<version>.<ext>
where .<ext>
is .tar.gz
for source packages, or .tgz
for binaries on
macOS and .zip
on Windows. During a restore()
, packages installed from
an unknown source will be searched for in this location.
By default, renv
collects state into these folders:
Platform | Location |
Linux | ~/.local/share/renv |
macOS | ~/Library/Application Support/renv |
Windows | %APPDATA%/renv |
If desired, this path can be adjusted by setting the RENV_PATHS_ROOT
environment variable. This can be useful if you'd like, for example, multiple
users to be able to share a single global cache.
The various state sub-directories can also be individually adjusted, if so desired (e.g. you'd prefer to keep the cache of package installations on a separate volume). The various environment variables that can be set are enumerated below:
Environment Variable | Description |
RENV_PATHS_ROOT |
The root path used for global state storage. |
RENV_PATHS_BOOTSTRAP |
The library path containing bootstrapped renv installations. |
RENV_PATHS_LIBRARY |
The root path containing different R libraries. |
RENV_PATHS_LOCAL |
The path containing local package sources. |
RENV_PATHS_SOURCE |
The path containing downloaded package sources. |
RENV_PATHS_BINARY |
The path containing downloaded package binaries. |
RENV_PATHS_CACHE |
The path containing cached package installations. |
RENV_PATHS_REPOS |
The path containing cached available package information. |
RENV_PATHS_EXTSOFT |
(Windows only) The path containing external software needed for compilation of Windows source packages. |
Note that renv
will append platform-specific and version-specific entries
to the set paths as appropriate. For example, if you have set:
Sys.setenv(RENV_PATHS_CACHE = "/mnt/shared/renv/cache")
then the directory used for the cache will still depend on the R version
(e.g. 3.5
) and the renv
cache version (e.g. v2
). For example:
/mnt/shared/renv/cache/R-3.5/v2
This ensures that you can set a single RENV_PATHS_CACHE
environment variable
globally without worry that it may cause collisions or errors if multiple
versions of R needed to interact with the same cache.
If reproducibility of a project is desired on a particular machine, it is
highly recommended that the renv
cache of installed packages + binary
packages is stored, so that packages can be easily restored in the future --
installation of packages from source can often be arduous.
If you want these settings to persist in your project, it is recommended that you add these to an appropriate R startup file. For example, these could be set in:
A project-local .Renviron
;
The user-level .Renviron
;
A file at $(R RHOME)/etc/Renviron.site
.
Please see ?Startup for more details.