Preflight Checks for 'R' Package System Requirements
Overview
Helps users on 'Linux' (and, where applicable, 'macOS') find the system packages they need before installing 'R' packages from source. Queries maintained system requirement sources, reports missing system packages, and generates installation commands, 'Dockerfile' snippets, 'GitHub Actions' steps, administrator request templates, and diagnostic reports from failed installation logs.
First public release.
Preflight checks
check_packages()resolves the system packages an R package needs on a given Linux platform. Four backends are available:"auto"(default),"bundled","ppm", and"pak".check_library()audits installed packages in an R library path.check_project()anddetect_project_packages()scan a project directory, preferringrenv.lock, thenDESCRIPTION, then source files.
Platform handling
detect_platform()reads/etc/os-releaseon Linux,sw_verson macOS, and parses fixture files for tests.detect_package_manager()returns the package manager for a platform (apt,dnf,yum,zypper,apk,brew).
Show all changes in 0.1.0Hide the rest of the changes in 0.1.0
resolve_platform()acceptsNULL, an existing platform object,<distro>-<version>shorthand, or a codename alias (jammy,noble,resolute,bookworm,trixie).
Commands and outputs
install_command()generates platform-appropriate install commands.dockerfile()andwrite_dockerfile_snippet()produce Dockerfile snippets.github_actions()(aliasgha()) produces a GitHub Actions YAML step.admin_request()drafts a plain-text request for system administrators.write_install_script()writes a POSIX shell script.write_report()andwrite_json()persist a plan to disk.as_install_plan()returns a structured list suitable for downstream tooling.
Diagnostics
diagnose_log()(aliasdiagnose_install_log()) matches common compiler and linker error patterns and resolves failed package names back to system requirements.check_error()is a convenience wrapper that readsgeterrmessage().diagnose_failed_packages()resolves a known list of failed R packages.
Posit Package Manager
ppm_platforms(),check_ppm(),ppm_repo(),ppm_sysreqs(), anduse_ppm()integrate with the Posit Package Manager API and binary repository URLs.
Setup guidance
setup_advice()produces a practical, beginner-friendly Linux setup checklist with optional shell-script output.explain()prints a friendly per-package explanation.
Documentation
- Five HTML vignettes: preflight setup, diagnosing failures, GNU/Linux fundamentals (for newcomers to Linux), Docker and CI workflows, and an FAQ.
- Every exported function has a runnable example.
- Reference index grouped by topic on the pkgdown site.
Correctness and portability
- Bundled system-package names are now portable across Debian and Ubuntu:
default-libmysqlclient-dev(waslibmysqlclient-dev, which does not exist on Debian),libgsl-dev(waslibgsl0-dev), andlibfreetype-dev(waslibfreetype6-dev). detect_project_packages()now detectsrequireNamespace()calls and ignores package names that appear only in line comments.setup_advice()generates Debian repository setup using the modern deb822Signed-Bykeyring format (matching CRAN's current Debian instructions), drops a no-op Fedorarepoqueryline, and presents the Fedora COPR step as optional.- Added AlmaLinux 9 and 10 as known platforms so
ppm_repo()andcheck_ppm()work for them. - The internal JSON parser now rejects unescaped control characters, per the JSON specification.
Design notes
sysreqrhas **zero required dependencies**: noImports, noDependsbeyond base R. TheSuggestsfield liststestthat,knitr,rmarkdown, andwithr, used only for tests and vignette building; none of them are loaded at run time.- Optional live backends can use Posit Package Manager (over HTTPS) and
pak::pkg_sysreqs(), both of which are detected at run time and never required. - The package ships a static bundled database of system requirements for common CRAN packages. The database is refreshed with each release. Use
backend = "ppm"orbackend = "pak"when newer live metadata is needed.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-04
- NOTE12 OK, 1 NOTE2026-08-01
- OK7 OK2026-06-12
Documentation
- Help pages
- 31 (1 internal)includes a package overview page
- Examples that run
- 89%25 run in a plain check · 3 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 0%
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- 0
- Median days to close, 50 most recently updated closed PRs
- 96
Stars over time
Releases over time
PRs over time
Commits over time
15 development-tooling and community-health practices detected across 7 families in the upstream repository
Checks run against github.com/choxos/sysreqr on 2026-10-21.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-09-16 · The repository has a site deploy workflow
Show all practicesHide 3 practices
Dependencies
Installing sysreqr adds no packages beyond those that come with R.
Code & Tests
People & History
- 0.1.0Latest2026-06-11 · current release
- RR 4.6.0 released · 2026-04-24
Package metadata
- First published
- 2026-06-11
- Total releases
- 1 / 1 yrs
- License
- GPL-3 OSI
- Minimum R
- ≥ 4.1
- Download size
- 208 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("sysreqr")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.