This package aims to fill a hole in provisioning a set of packages. There are some trouble spots that it aims to fill
install.packages()
with a list of packages does not throw an error if package installation fails, which makes using it in scripts difficult- Resolving dependencies across packages that are not on CRAN is difficult.
Remotes:
helps, but only if people have been dilegent - Provisioning a set of packages for a different architecture than the one you are operating on is difficult.
What this package aims to do is let users write
provisionr::provision_library(packages, path, platform, version)
and have a library built at path
containing packages
(and all their dependencies) for platform
(windows, macosx, linux) and a particular R version
. Declaring non-CRAN package sources is done with an argument src
, which centralises collection of github, local, and other package sources.
- Install one or more packages into a library, skipping packages that are already installed
- Create a complete self-contained library for a set of packages, isolated from the rest of the system
- As above, but for a different architecture than your current system (e.g., create a windows library when on linux or v.v.)
At the same time, do all this while allowing installation of github and local package sources (including detecting and acting on upgrades).
The package differs from packrat in that it is not trying to create a strictly versioned library (though that may included in a future release).
# install.packages("drat")
drat:::add("mrc-ide")
install.packages("provisionr")