Pkginstall
Provides a replacement for `utils::install.packages()`
Install / Use
/learn @r-lib/PkginstallREADME
pkginstall
<p align="center"> <a href="https://asciinema.org/a/Cqnq0oTTlAHI3KcU6LePFNsEU?autoplay=1" target="_blank"><img src="https://asciinema.org/a/Cqnq0oTTlAHI3KcU6LePFNsEU.png" width = "75%"/></a> </p>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 
pkginstall is superseded: the functionality was included directly in the pkgdepends package, used by pak. We recommend using pak instead.
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
