# pak > A Fresh Approach to R Package Installation pak installs R packages from CRAN, Bioconductor, GitHub, URLs, git repositories, local files and directories. It is an alternative to [`install.packages()`](https://rdrr.io/r/utils/install.packages.html) and `devtools::install_github()`. pak is fast, safe and convenient. - [🚀 Short tour](#rocket-short-tour) - [🔗 Quick links (start here if in doubt!)](#link-quick-links-start-here-if-in-doubt) - [✨ Features](#sparkles-features) - [⬇️ Installation](#arrow_down-installation) - [**📘** License](#blue_book-license) ## 🚀 Short tour #### Install or update packages from CRAN or Bioconductor ``` r pak::pkg_install("tibble") ``` #> ✔ Loading metadata database ... done #> #> → Package library at /tmp/Rtmpr19Pyg/file2d7754078150. #> → Will install 10 packages. #> → Will download 10 CRAN packages (4.24 MB). #> + cli 3.6.6 [bld][cmp][dl] (644.13 kB) #> + glue 1.8.1 [bld][cmp][dl] (129.79 kB) #> + lifecycle 1.0.5 [bld][dl] (107.14 kB) #> + magrittr 2.0.5 [bld][cmp][dl] (281.81 kB) #> + pillar 1.11.1 [bld][dl] (409.51 kB) #> + pkgconfig 2.0.3 [bld][dl] (6.08 kB) #> + rlang 1.2.0 [bld][cmp][dl] (780.86 kB) #> + tibble 3.3.1 [bld][cmp][dl] (557.13 kB) #> + utf8 1.2.6 [bld][cmp][dl] (243.86 kB) #> + vctrs 0.7.3 [bld][cmp][dl] (1.08 MB) #> #> ℹ Getting 10 pkgs (4.24 MB) #> ✔ Got lifecycle 1.0.5 (source) (107.14 kB) #> ✔ Got glue 1.8.1 (source) (129.79 kB) #> ✔ Got pkgconfig 2.0.3 (source) (6.08 kB) #> ✔ Got cli 3.6.6 (source) (644.13 kB) #> ✔ Got utf8 1.2.6 (source) (243.86 kB) #> ✔ Got rlang 1.2.0 (source) (780.86 kB) #> ✔ Got vctrs 0.7.3 (source) (1.08 MB) #> ✔ Got pillar 1.11.1 (source) (409.51 kB) #> ✔ Got tibble 3.3.1 (source) (557.13 kB) #> ✔ Got magrittr 2.0.5 (source) (281.81 kB) #> ℹ Building cli 3.6.6 #> ℹ Building glue 1.8.1 #> ℹ Building magrittr 2.0.5 #> ℹ Building pkgconfig 2.0.3 #> ✔ Built pkgconfig 2.0.3 (1.1s) #> ℹ Building rlang 1.2.0 #> ✔ Built magrittr 2.0.5 (1.7s) #> ℹ Building utf8 1.2.6 #> ✔ Built glue 1.8.1 (2.2s) #> ✔ Installed glue 1.8.1 (39ms) #> ✔ Installed magrittr 2.0.5 (31ms) #> ✔ Installed pkgconfig 2.0.3 (24ms) #> ✔ Built utf8 1.2.6 (4.1s) #> ✔ Installed utf8 1.2.6 (19ms) #> ✔ Built cli 3.6.6 (10.8s) #> ✔ Installed cli 3.6.6 (29ms) #> ✔ Built rlang 1.2.0 (11.6s) #> ✔ Installed rlang 1.2.0 (36ms) #> ℹ Building lifecycle 1.0.5 #> ✔ Built lifecycle 1.0.5 (1.3s) #> ✔ Installed lifecycle 1.0.5 (15ms) #> ℹ Building vctrs 0.7.3 #> ✔ Built vctrs 0.7.3 (21.6s) #> ✔ Installed vctrs 0.7.3 (55ms) #> ℹ Building pillar 1.11.1 #> ✔ Built pillar 1.11.1 (3s) #> ✔ Installed pillar 1.11.1 (24ms) #> ℹ Building tibble 3.3.1 #> ✔ Built tibble 3.3.1 (2.7s) #> ✔ Installed tibble 3.3.1 (25ms) #> ✔ 1 pkg + 9 deps: added 10, dld 10 (4.24 MB) [48.2s] #### Install packages from GitHub ``` r pak::pkg_install("tidyverse/tibble") ``` #> #> → Package library at /tmp/Rtmpr19Pyg/file2d7754078150. #> → Will update 1 package. #> → The package (0 B) is cached. #> + tibble 3.3.1 → 3.3.1.9016 [bld][cmp] (GitHub: c51fe5d) #> #> ℹ No downloads are needed, 1 pkg is cached #> ✔ Got tibble 3.3.1.9016 (source) (1.39 MB) #> ℹ Packaging tibble 3.3.1.9016 #> ✔ Packaged tibble 3.3.1.9016 (707ms) #> ℹ Building tibble 3.3.1.9016 #> ✔ Built tibble 3.3.1.9016 (2.6s) #> ✔ Installed tibble 3.3.1.9016 (github::tidyverse/tibble@c51fe5d) (21ms) #> ✔ 1 pkg + 9 deps: kept 9, upd 1, dld 1 (NA B) [5.5s] #### Look up dependencies ``` r pak::pkg_deps_tree("tibble") ``` #> tibble 3.3.1 [new][bld][cmp] #> ├─cli 3.6.6 [new][bld][cmp] #> ├─lifecycle 1.0.5 [new][bld] #> │ ├─cli #> │ └─rlang 1.2.0 [new][bld][cmp] #> ├─magrittr 2.0.5 [new][bld][cmp] #> ├─pillar 1.11.1 [new][bld] #> │ ├─cli #> │ ├─glue 1.8.1 [new][bld][cmp] #> │ ├─lifecycle #> │ ├─rlang #> │ ├─utf8 1.2.6 [new][bld][cmp] #> │ └─vctrs 0.7.3 [new][bld][cmp] #> │ ├─cli #> │ ├─glue #> │ ├─lifecycle #> │ └─rlang #> ├─pkgconfig 2.0.3 [new][bld] #> ├─rlang #> └─vctrs #> #> Key: [new] new | [bld] build | [cmp] compile #### Explain dependencies ``` r pak::pkg_deps_explain("tibble", "rlang") ``` #> tibble -> lifecycle -> rlang #> tibble -> pillar -> lifecycle -> rlang #> tibble -> pillar -> rlang #> tibble -> pillar -> vctrs -> lifecycle -> rlang #> tibble -> pillar -> vctrs -> rlang #> tibble -> rlang #> tibble -> vctrs -> lifecycle -> rlang #> tibble -> vctrs -> rlang #### Install a local package and its dependencies ``` r pak::local_install("cli") ``` #> #> → Package library at /tmp/Rtmpr19Pyg/file2d7754078150. #> → Will update 1 package. #> → The package (0 B) is cached. #> + cli 3.6.6 → 3.6.6 [bld][cmp] #> #> ℹ No downloads are needed, 1 pkg is cached #> ✔ Got cli 3.6.6 (source) (644.13 kB) #> ℹ Packaging cli 3.6.6 #> ✔ Packaged cli 3.6.6 (1.3s) #> ℹ Building cli 3.6.6 #> ✔ Built cli 3.6.6 (8.3s) #> ✔ Installed cli 3.6.6 (local) (31ms) #> ✔ 1 pkg: upd 1, dld 1 (644.13 kB) [10.2s] ## 🔗 Quick links (start here if in doubt!) ### How do I … ? Start at [*Get Started with pak*](https://pak.r-lib.org/reference/get-started.html) to solve specific issues. ### FAQ Check out the [list of frequently asked questions](https://pak.r-lib.org/reference/faq.html). ### Reference [The complete reference of pak functions](https://pak.r-lib.org/dev/reference/) is the most complete source of information about pak. ### I have a(nother) question Don’t hesitate to ask at the [RStudio Community forum](https://forum.posit.co/). Use the `pak` tag. ### I would like to report a bug Head to the [pak issue tracker](https://github.com/r-lib/pak/issues). ## ✨ Features ⚡ Fast - parallel downloads and installation, caching, etc. 🦺 Safe - dependency solver, system dependency solver, etc. 🏪 Convenient - packages from multiple sources, time travel, etc. See the [complete list of awesome features](https://pak.r-lib.org/reference/features.html). ## [⬇️](https://github.com/r-lib/rig#%EF%B8%8F--installation) Installation ### Pre-built binaries Install a binary build of pak from our repository on GitHub: ``` r install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch)) ``` This is supported for the following systems: | OS | CPU | R version | |--------------------|---------|-------------------| | Linux | x86_64 | R 3.5.0 - R-devel | | Linux | aarch64 | R 3.5.0 - R-devel | | macOS High Sierra+ | x86_64 | R 3.5.0 - R-devel | | macOS Big Sur+ | aarch64 | R 4.1.0 - R-devel | | Windows | x86_64 | R 3.5.0 - R-devel | For macOS we only support the official CRAN R build. Other builds, e.g. Homebrew R, are not supported. ### Install from CRAN Install the released version of the package from CRAN as usual: ``` r install.packages("pak") ``` This potentially needs a C compiler on platforms CRAN does not have binaries packages for. ### Other platforms and nightly builds See the [installation page](https://pak.r-lib.org/reference/install.html)! ## **📘** License GPL-3 © RStudio # Package index ## About pak - [`Installing pak`](https://pak.r-lib.org/reference/install.md) : All about installing pak. - [`Great pak features`](https://pak.r-lib.org/reference/features.md) : A list of the most important pak features - [`Package sources`](https://pak.r-lib.org/reference/pak_package_sources.md) : Install packages from CRAN, Bioconductor, GitHub, URLs, etc. - [`The dependency solver`](https://pak.r-lib.org/reference/pak_solver.md) : Find the ideal set of packages and versions to install - [`Package dependency types`](https://pak.r-lib.org/reference/package-dependency-types.md) : Various types of R package dependencies - [`System requirements`](https://pak.r-lib.org/reference/sysreqs.md) [`sysreqs`](https://pak.r-lib.org/reference/sysreqs.md) : System requirements - [`Authenticated repositories`](https://pak.r-lib.org/reference/repo-auth.md) : Authenticated repositories - [`pak configuration`](https://pak.r-lib.org/reference/pak-config.md) [`pak-config`](https://pak.r-lib.org/reference/pak-config.md) : Environment variables and options that modify the default behavior ## Packages ### Installation - [`pkg_install()`](https://pak.r-lib.org/reference/pkg_install.md) : Install packages - [`pak()`](https://pak.r-lib.org/reference/pak.md) : Install specified required packages - [`pkg_status()`](https://pak.r-lib.org/reference/pkg_status.md) : Display installed locations of a package - [`pkg_remove()`](https://pak.r-lib.org/reference/pkg_remove.md) : Remove installed packages ### Dependencies - [`pkg_deps()`](https://pak.r-lib.org/reference/pkg_deps.md) : Look up the dependencies of a package - [`pkg_deps_explain()`](https://pak.r-lib.org/reference/pkg_deps_explain.md) : Explain how a package depends on other packages - [`pkg_deps_tree()`](https://pak.r-lib.org/reference/pkg_deps_tree.md) : Draw the dependency tree of a package - [`scan_deps()`](https://pak.r-lib.org/reference/scan_deps.md) : Scan R code for dependent packages ### Download - [`pkg_download()`](https://pak.r-lib.org/reference/pkg_download.md) : Download a package and its dependencies ### Metadata - [`pkg_history()`](https://pak.r-lib.org/reference/pkg_history.md) : Query the history of a CRAN package - [`pkg_name_check()`](https://pak.r-lib.org/reference/pkg_name_check.md) : Check if an R package name is available - [`pkg_search()`](https://pak.r-lib.org/reference/pkg_search.md) : Search CRAN packages ## Local Package Trees - [`local_package_trees`](https://pak.r-lib.org/reference/local_package_trees.md) : About local package trees - [`local_deps()`](https://pak.r-lib.org/reference/local_deps.md) [`local_deps_tree()`](https://pak.r-lib.org/reference/local_deps.md) [`local_dev_deps()`](https://pak.r-lib.org/reference/local_deps.md) [`local_dev_deps_tree()`](https://pak.r-lib.org/reference/local_deps.md) : Dependencies of a package tree - [`local_deps_explain()`](https://pak.r-lib.org/reference/local_deps_explain.md) [`local_dev_deps_explain()`](https://pak.r-lib.org/reference/local_deps_explain.md) : Explain dependencies of a package tree - [`local_install()`](https://pak.r-lib.org/reference/local_install.md) : Install a package tree - [`local_install_deps()`](https://pak.r-lib.org/reference/local_install_deps.md) : Install the dependencies of a package tree - [`local_install_dev_deps()`](https://pak.r-lib.org/reference/local_install_dev_deps.md) : Install all (development) dependencies of a package tree ## Libraries - [`lib_status()`](https://pak.r-lib.org/reference/lib_status.md) [`pkg_list()`](https://pak.r-lib.org/reference/lib_status.md) : Status of packages in a library ## System requirements - [`pkg_sysreqs()`](https://pak.r-lib.org/reference/pkg_sysreqs.md) : Calculate system requirements of one of more packages - [`sysreqs_check_installed()`](https://pak.r-lib.org/reference/sysreqs_check_installed.md) [`sysreqs_fix_installed()`](https://pak.r-lib.org/reference/sysreqs_check_installed.md) : Check if installed packages have all their system requirements - [`sysreqs_db_list()`](https://pak.r-lib.org/reference/sysreqs_db_list.md) : List contents of the system requirements DB, for a platform - [`sysreqs_db_match()`](https://pak.r-lib.org/reference/sysreqs_db_match.md) : Match system requirement descriptions to the database - [`sysreqs_db_update()`](https://pak.r-lib.org/reference/sysreqs_db_update.md) : Update the cached copy of the system requirements database - [`sysreqs_is_supported()`](https://pak.r-lib.org/reference/sysreqs_is_supported.md) : Check if a platform has system requirements support - [`sysreqs_list_system_packages()`](https://pak.r-lib.org/reference/sysreqs_list_system_packages.md) : List installed system packages - [`sysreqs_platforms()`](https://pak.r-lib.org/reference/sysreqs_platforms.md) : List platforms with system requirements support ## Repositories - [`ppm_has_binaries()`](https://pak.r-lib.org/reference/ppm_has_binaries.md) : Does PPM build binary packages for the current platform? - [`ppm_platforms()`](https://pak.r-lib.org/reference/ppm_platforms.md) : List all platforms supported by Posit Package Manager (PPM) - [`ppm_r_versions()`](https://pak.r-lib.org/reference/ppm_r_versions.md) : List all R versions supported by Posit Package Manager (PPM) - [`ppm_repo_url()`](https://pak.r-lib.org/reference/ppm_repo_url.md) : Returns the current Posit Package Manager (PPM) repository URL - [`ppm_snapshots()`](https://pak.r-lib.org/reference/ppm_snapshots.md) : List all available Posit Package Manager (PPM) snapshots - [`ppm_sso_login()`](https://pak.r-lib.org/reference/ppm_sso_login.md) [`ppm_sso_logout()`](https://pak.r-lib.org/reference/ppm_sso_login.md) [`ppm_sso_status()`](https://pak.r-lib.org/reference/ppm_sso_login.md) : Posit Package Manager single sign-on (SSO) authentication - [`repo_add()`](https://pak.r-lib.org/reference/repo_add.md) [`repo_resolve()`](https://pak.r-lib.org/reference/repo_add.md) : Add a new CRAN-like repository - [`repo_auth()`](https://pak.r-lib.org/reference/repo_auth.md) : Authenticated repositories - [`repo_auth_key_get()`](https://pak.r-lib.org/reference/repo_auth_key_get.md) [`repo_auth_key_set()`](https://pak.r-lib.org/reference/repo_auth_key_get.md) [`repo_auth_unlock()`](https://pak.r-lib.org/reference/repo_auth_key_get.md) : Query or set repository password in the system credential store - [`repo_get()`](https://pak.r-lib.org/reference/repo_get.md) : Query the currently configured CRAN-like repositories - [`repo_status()`](https://pak.r-lib.org/reference/repo_status.md) [`repo_ping()`](https://pak.r-lib.org/reference/repo_status.md) : Show the status of CRAN-like repositories ## Auto-install missing packages - [`handle_package_not_found()`](https://pak.r-lib.org/reference/handle_package_not_found.md) : Install missing packages on the fly ## Lock files - [`lockfile_create()`](https://pak.r-lib.org/reference/lockfile_create.md) : Create a lock file - [`lockfile_install()`](https://pak.r-lib.org/reference/lockfile_install.md) : Install packages based on a lock file ## System information - [`system_r_platform()`](https://pak.r-lib.org/reference/system_r_platform.md) [`system_r_platform_data()`](https://pak.r-lib.org/reference/system_r_platform.md) : R platforms ## pak housekeeping - [`cache_summary()`](https://pak.r-lib.org/reference/cache.md) [`cache_list()`](https://pak.r-lib.org/reference/cache.md) [`cache_delete()`](https://pak.r-lib.org/reference/cache.md) [`cache_clean()`](https://pak.r-lib.org/reference/cache.md) : Package cache utilities - [`meta_summary()`](https://pak.r-lib.org/reference/metadata.md) [`meta_list()`](https://pak.r-lib.org/reference/metadata.md) [`meta_update()`](https://pak.r-lib.org/reference/metadata.md) [`meta_clean()`](https://pak.r-lib.org/reference/metadata.md) : Metadata cache utilities - [`pak_install_extra()`](https://pak.r-lib.org/reference/pak_install_extra.md) : Install all optional dependencies of pak - [`pak_cleanup()`](https://pak.r-lib.org/reference/pak_cleanup.md) : Clean up pak caches - [`pak_sitrep()`](https://pak.r-lib.org/reference/pak_sitrep.md) : pak SITuation REPort - [`pak_update()`](https://pak.r-lib.org/reference/pak_update.md) : Update pak itself