pak behavior can be finetuned with environment variables and
options (as in base::options()
).
R options affecting pak's behavior
Ncpus
Set to the desired number of worker processes for package installation. If not set, then pak will use the number of logical processors in the machine.
repos
The CRAN-like repositories to use. See base::options()
for details.
pak configuration
Configuration entries (unless noted otherwise on this manual page) have a corresponding environment variable, and a corresponding option.
The environment variable is always uppercase and uses underscores as the
word separator. It always has the PKG_
prefix.
The option is typically lowercase, use it uses underscores as the word
separator, but it always has the pkg.
prefix (notice the dot!).
Some examples:
Config entry name | Env var name | Option name |
platforms | PKG_PLATFORMS | pkg.platforms |
cran_mirror | PKG_CRAN_MIRROR | pkg.cran_mirror |
pak configuration entries
‘cache_dir’: (Env var:
PKG_CACHE_DIR
, option:pkg.cache_dir
.) Directory to download the packages to. Defaults to a temporary directory within the R session temporary directory, seebase::tempdir()
.‘cran_mirror’: (Env var:
PKG_CRAN_MIRROR
, option:pkg.cran_mirror
.) CRAN mirror to use. Defaults to therepos
option (seebase::options()
), if that's not set thenhttps://cran.rstudio.com
. See alsopak::repo_add()
andpak::repo_get()
‘git_submodules’: (Env var:
PKG_GIT_SUBMODULES
, option:pkg.git_submodules
.) Whether or not to update submodules in git repositories. This affectsgit::
andgitlab::
package sources only. If the R package is in a subdirectory then only the submodules within that directory are updated. If a submodule appears in.Rbuildignore
, then it is skipped.‘include_linkingto’: (Env var:
PKG_INCLUDE_LINKINGTO
, option:pkg.include_linkingto
.) Whether to always includeLinkingTo
dependencies in the solution of and installation, even if they are needed because the packages are installed from binaries. This is sometimes useful, see e.g. https://github.com/r-lib/pak/issues/485 for an example use case.‘library’: (Env var:
PKG_LIBRARY
, option:pkg.library
.) Package library to install packages to. It is also used for already installed packages when considering dependencies.‘metadata_cache_dir’: (Env var:
PKG_METADATA_CACHE_DIR
, option:pkg.metadata_cache_dir
.) Location of metadata replica ofpkgcache::cranlike_metadata_cache
. Defaults to a temporary directory within the R session temporary directory, seebase::tempdir()
.‘metadata_update_after’: (Env var:
PKG_METADATA_UPDATE_AFTER
, option:pkg.metadata_update_after
.) A time interval as a difftime object. pak will update the metadata cache if it is older than this. The default is one day. ThePKG_METADATA_UPDATE_AFTER
environment variable may be set in seconds (s
suffix), minutes (m
suffix), hours (h
suffix), or days (d
suffix). E.g:1d
means one day.‘package_cache_dir’: (Env var:
PKG_PACKAGE_CACHE_DIR
, option:pkg.package_cache_dir
.) Location of the package cache on the disk. Seepak::cache_summary()
. Default is selected by pkgcache.‘platforms’: (Env var:
PKG_PLATFORMS
, option:pkg.platforms
.) Character vector of platforms to download or install packages for. Seepkgdepends::default_platforms()
for possible platform names. Defaults to the platform of the current R session, plus"source"
.‘r_versions’: (Env var:
PKG_R_VERSIONS
, option:pkg.r_versions
.) Character vector, R versions to download or install packages for. It defaults to the current R version.‘sysreqs’: (Env var:
PKG_SYSREQS
, option:pkg.sysreqs
.) Whether to automatically look up and install system requirements. IfTRUE
, then pkgdepends will try to install required system packages. IfFALSE
, then system requirements are still printed (including OS packages on supported platforms), but they are not installed. By default it isTRUE
on supported platforms, if the current user is the root user or password-lesssudo
is configured for the current user.‘sysreqs_db_update’: (Env var:
PKG_SYSREQS_DB_UPDATE
, option:pkg.sysreqs_db_update
.) Whether to try to update the system requirements database from GitHub. If the update fails, then the cached or the build-in database if used. Defaults to TRUE.‘sysreqs_db_update_timeout’: (Env var:
PKG_SYSREQS_DB_UPDATE_TIMEOUT
, option:pkg.sysreqs_db_update_timeout
.) Timeout for the system requirements database update. Defaults to five seconds.‘sysreqs_dry_run’: (Env var:
PKG_SYSREQS_DRY_RUN
, option:pkg.sysreqs_dry_run
.) IfTRUE
, then pak only prints the system commands to install system requirements, but does not execute them.‘sysreqs_platform’: (Env var:
PKG_SYSREQS_PLATFORM
, option:pkg.sysreqs_platform
.) The platform to use for system requirements lookup. On Linux, where system requirements are currently supported, it must be a string containing the distribution name and release, separated by a dash. E.g.:"ubuntu-22.04"
, or"rhel-9"
.‘sysreqs_rspm_repo_id’: (Env var:
PKG_SYSREQS_RSPM_REPO_ID
, option:pkg.sysreqs_rspm_repo_id
.) Posit Package Manager (formerly RStudio Package Manager) repository id to use for CRAN system requirements lookup. Defaults to theRSPM_REPO_ID
environment variable, if set. If not set, then it defaults to1
.‘sysreqs_rspm_url’: (Env var:
PKG_SYSREQS_RSPM_URL
, option:pkg.sysreqs_rspm_url
.) Root URL of Posit Package Manager (formerly RStudio Package Manager) for system requirements lookup. By default theRSPM_ROOT
environment variable is used, if set. If not set, it defaults tohttps://packagemanager.posit.co
.‘sysreqs_sudo’: (Env var:
PKG_SYSREQS_SUDO
, option:pkg.sysreqs_sudo
.) Whether to usesudo
to install system requirements, on Unix. By default it isTRUE
on Linux if the effective user id of the current process is not theroot
user.‘sysreqs_update’: (Env var:
PKG_SYSREQS_UPDATE
, option:pkg.sysreqs_update
.) Whether to try to update system packages that are already installed. It defaults toTRUE
on CI systems: if theCI
environment variable is set totrue
.‘sysreqs_verbose’: (Env var:
PKG_SYSREQS_VERBOSE
, option:pkg.sysreqs_verbose
.) Whether to echo the output of system requirements installation. Defaults toTRUE
if theCI
environment variable is set.‘use_bioconductor’: (Env var:
PKG_USE_BIOCONDUCTOR
, option:pkg.use_bioconductor
.) Whether to automatically use the Bioconductor repositories. Defaults toTRUE
.‘windows_archs’: (Env var:
PKG_WINDOWS_ARCHS
, option:pkg.windows_archs
.) Character scalar specifying which architectures to download/install for on Windows. Its possible values are:"prefer-x64"
: Generally prefer x64 binaries. If the current R session isx64
, then we download/install x64 packages. (These packages might still be multi-architecture binaries!) If the current R session isi386
, then we download/install packages for both architectures. This might mean compiling packages from source if the binary packages are forx64
only, like the CRAN Windows binaries for R 4.2.x currently."prefer-x64"
is the default for R 4.2.0 and later."both"
: Always download/install packages for bothi386
andx64
architectures. This might need compilation from source if the available binaries are forx64
only, like the CRAN Windows binaries for R 4.2.x currently."both"
is the default for R 4.2.0 and earlier.