Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/r-lib/pkginstall

Provides a replacement for `utils::install.packages()`
https://github.com/r-lib/pkginstall

r

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# pkginstall
[![Travis build status](https://travis-ci.org/r-lib/pkginstall.svg?branch=master)](https://travis-ci.org/r-lib/pkginstall)
[![Coverage status](https://codecov.io/gh/r-lib/pkginstall/branch/master/graph/badge.svg)](https://codecov.io/github/r-lib/pkginstall?branch=master)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/r-lib/pkginstall?branch=master&svg=true)](https://ci.appveyor.com/project/r-lib/pkginstall)
[![Lifecycle: superseded](https://img.shields.io/badge/lifecycle-superseded-orange.svg)](https://www.tidyverse.org/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

```r
install.packages("pkginstall")
```

## Example

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

## Status [![Lifecycle: superseded](https://img.shields.io/badge/lifecycle-superseded-orange.svg)](https://www.tidyverse.org/lifecycle/#superseded)

pkginstall is superseded: the functionality was included directly in the pkgdepends package, used by pak. We recommend using [pak](https://github.com/r-lib/pak) instead.