These functions check that packages are installed with minimal side effects. If installed, the packages will be loaded but not attached.
is_installed()
doesn't interact with the user. It simply
returns TRUE
or FALSE
depending on whether the packages are
installed.
In interactive sessions, check_installed()
asks the user
whether to install missing packages. If the user accepts, the
packages are installed with pak::pkg_install()
if available, or
utils::install.packages()
otherwise. If the session is non
interactive or if the user chooses not to install the packages,
the current evaluation is aborted.
You can disable the prompt by setting the
rlib_restart_package_not_found
global option to FALSE
. In that
case, missing packages always cause an error.
is_installed(pkg, ..., version = NULL, compare = NULL)check_installed(
pkg,
reason = NULL,
...,
version = NULL,
compare = NULL,
action = NULL,
call = caller_env()
)
is_installed()
returns TRUE
if all package names
provided in pkg
are installed, FALSE
otherwise. check_installed()
either doesn't return or returns
NULL
.
The package names. Can include version requirements,
e.g. "pkg (>= 1.0.0)"
.
These dots must be empty.
Minimum versions for pkg
. If supplied, must be the
same length as pkg
. NA
elements stand for any versions.
A character vector of comparison operators to use
for version
. If supplied, must be the same length as
version
. If NULL
, >=
is used as default for all
elements. NA
elements in compare
are also set to >=
by
default.
Optional string indicating why is pkg
needed.
Appears in error messages (if non-interactive) and user prompts
(if interactive).
An optional function taking pkg
and ...
arguments. It is called by check_installed()
when the user
chooses to update outdated packages. The function is passed the
missing and outdated packages as a character vector of names.
The execution environment of a currently
running function, e.g. caller_env()
. The function will be
mentioned in error messages as the source of the error. See the
call
argument of abort()
for more information.
check_installed()
signals error conditions of class
rlib_error_package_not_found
. The error includes pkg
and
version
fields. They are vectorised and may include several
packages.
The error is signalled with a rlib_restart_package_not_found
restart on the stack to allow handlers to install the required
packages. To do so, add a calling handler
for rlib_error_package_not_found
, install the required packages,
and invoke the restart without arguments. This restarts the check
from scratch.
The condition is not signalled in non-interactive sessions, in the
restarting case, or if the rlib_restart_package_not_found
user
option is set to FALSE
.
is_installed("utils")
is_installed(c("base", "ggplot5"))
is_installed(c("base", "ggplot5"), version = c(NA, "5.1.0"))
Run the code above in your browser using DataLab