Another Approach to Package Installation
The goal of 'pak' is to make package installation faster and
more reliable. In particular, it performs all HTTP operations in parallel,
so metadata resolution and package downloads are fast. Metadata and package
files are cached on the local disk as well. 'pak' has a dependency solver,
so it finds version conflicts before performing the installation. This
version of 'pak' supports CRAN, 'Bioconductor' and 'GitHub' packages as well.
A Fresh Approach to R Package Installation
pak installs R packages from CRAN, Bioconductor, GitHub, and local files
and directories. It is an alternative to
devtools::install_github(). pak is fast, safe and
Install the package from CRAN:
(After installation, you might also want to run
it’ll be run automatically when needed but you might want to do it now
to save some time later.)
pkg_install() to install CRAN or Bioconductor packages:
To install GitHub packages, use the
All dependencies will be installed as well, to the same library.
Fast downloads and HTTP queries. pak performs all HTTP requests concurrently.
Fast installs. pak builds and installs packages concurrently.
Metadata and package cache. pak caches package metadata and all downloaded packages locally. It does not download the same package files over and over again.
Lazy installation. pak only installs the packages that are really necessary for the installation. If the requested package and its dependencies are already installed, pak does nothing.
Private library (pak’s own package dependencies do not affect your regular package libraries and vice versa).
Every pak operation runs in a sub-process, and the packages are loaded from the private library. pak avoids loading packages from your regular package libraries. (These package files would be locked on some systems, and locked packages cannot be updated. pak does not load any package in the main process, except for pak itself).
To avoid updating locked packages, pak warns and requests confirmation for loaded packages.
Dependency solver. pak makes sure that you end up in a consistent, working state of dependencies. If finds conflicts up front, before attempting installation.
BioC packages. pak supports Bioconductor packages out of the box. It uses the Bioconductor version that is appropriate for your R version.
GitHub packages. pak supports GitHub packages out of the box. It also supports the
DESCRIPTIONfiles, so that GitHub dependencies of GitHub packages will also get installed. See e.g. https://cran.r-project.org/package=remotes/vignettes/dependencies.html
Package sizes. For CRAN packages pak shows the total sizes of packages it needs to download.
- Support GitLab repositories
- Support Bitbucket repositories
- Support package URLs
- Support system requirements
- Support older CRAN package versions
- Support older BioConductor package versions
- Support GitHub pull requests
- Support local CRAN mirrors
- Support the
- Support SVN repos
GPL-3 © RStudio
Functions in pak
|local_install_deps||Install the dependencies of a package tree|
|proj_create||Create a project that has a private package library|
|proj_install||Install project dependencies into the project library|
|pkg_remove||Remove installed packages|
|pak_create_private_lib||Install pak's dependencies into its private library|
|pak_cleanup||Clean up pak caches and/or the pak library|
|proj_install_dev||Install project dependencies, including development dependencies, into private project library|
|pkg_status||Display installed locations of a package|
|proj_remove||Remove package(s) from a project|
|pak_sitrep||pak SITuation REPort|
|pkg_install||Install a package|
|lib_status||Status of packages in a library|
|local_install||Install a package tree|
|proj_status||Status of packages in the project library|
|pak_private_library||The pak private library|
|local_package_trees||Local package trees|
|local_install_dev_deps||Install all dependencies of a package tree|
|pak_setup||Install pak's dependencies into its private library|
Last month downloads
|Packaged||2019-02-16 22:07:13 UTC; gaborcsardi|
|Date/Publication||2019-02-19 18:50:08 UTC|
|imports||assertthat , base64enc , callr (>= 22.214.171.12402) , cli (>= 1.0.0) , cliapp (>= 0.0.0.9002) , crayon (>= 1.3.4) , curl (>= 3.2) , desc (>= 1.2.0) , filelock (>= 1.0.2) , glue (>= 1.3.0) , jsonlite , lpSolve , pkgbuild (>= 1.0.2) , pkgcache (>= 1.0.3) , prettyunits , processx (>= 3.2.1) , ps (>= 1.3.0) , R6 , rematch2 , rprojroot (>= 1.3.2) , tibble , utils|
|suggests||covr , mockery , pingr , testthat , withr|
|depends||R (>= 3.2)|
|Contributors||Jim Hester, RStudio|
Include our badge in your README