This function efficiently checks for the presence of a package
without loading it (unlike library()
or require()
.
This is useful to force yourself to use the package::function
syntax for addressing functions; you can make sure required packages
are installed, but their namespace won't attach to the search path.
Arguments
- ...
A series of packages. If the packages are named, the names are the package names, and the values are the minimum required package versions (see the second example).
- install
Whether to install missing packages from
repos
.- load
Whether to load packages (which is exactly not the point of this package, but hey, YMMV).
- repos
The repository to use if installing packages; default is the RStudio repository.
Examples
# \donttest{
rock::checkPkgs('base');
### Require a specific version
rock::checkPkgs(rock = "0.9.1");
### This will show the error message
tryCatch(
rock::checkPkgs(
base = "99",
stats = "42.5",
rock = 2000
),
error = print
);
#> <simpleError in rock::checkPkgs(base = "99", stats = "42.5", rock = 2000): Of package(s) 'base', 'stats' & 'rock', you need at least versions 99, 42.5 & 2000, respectively. Install those with:
#>
#> install.packages(c('base', 'stats', 'rock'));
#> >
# }