/pkginstall

Provides a replacement for `utils::install.packages()`

Primary LanguageRGNU General Public License v3.0GPL-3.0

pkginstall

Travis build status Coverage status AppVeyor Build Status Lifecycle: superseded

Provides a replacement for utils::install.packages(repo = NULL). I.e. it builds binary packages from source packages, and extracts the compressed archives into the package library.

Compared to utils::install.packages() it

  • Has robust support for installing packages in parallel.
  • Fails immediately when the first package fails when installing multiple packages, rather than returning a warning.
  • Uses the same code paths on all platforms, rather than similar (but not identical) code paths.
  • Succeeds or fails atomically. Either the complete package is installed or it fails with an informative error message.
  • Has additional tests for package validity before installing
  • Always uses per-package lock files, to protect against simultaneous installation
  • Has a robust set of tests, to ensure correctness and ease debugging installation issues.

Installation

Once on CRAN, install with

install.packages("pkginstall")

Example

files <- download.packages("remotes", type = "binary", ".")
pkginstall::install_binary(files[[2]])

Status Lifecycle: superseded

pkginstall is superseded: the functionality was included directly in the pkgdepends package, used by pak. We recommend using pak instead.