Skip to content

Please take a look at this list before asking questions.

Package installation

How do I reinstall a package?

pak does not reinstall a package, if the same version is already installed. Sometimes you still want a reinstall, e.g. to fix a broken installation. In this case you can delete the package and then install it, or use the ?reinstall parameter:

pak::pkg_install("tibble")

#>
#> → Will install 13 packages.
#> → All 13 packages (7.68 MB) are cached.
#> + cli         3.3.0
#> + crayon      1.5.1
#> + ellipsis    0.3.2
#> + fansi       1.0.3
#> + glue        1.6.2
#> + lifecycle   1.0.1
#> + magrittr    2.0.3
#> + pillar      1.7.0
#> + pkgconfig   2.0.3
#> + rlang       1.0.2
#> + tibble      3.1.7
#> + utf8        1.2.2
#> + vctrs       0.4.1
#>  No downloads are needed, 13 pkgs (7.68 MB) are cached
#>  Got utf8 1.2.2 (aarch64-apple-darwin20) (209.24 kB)
#>  Installed cli 3.3.0  (76ms)
#>  Installed crayon 1.5.1  (87ms)
#>  Installed ellipsis 0.3.2  (97ms)
#>  Installed fansi 1.0.3  (103ms)
#>  Installed glue 1.6.2  (111ms)
#>  Installed lifecycle 1.0.1  (153ms)
#>  Installed magrittr 2.0.3  (158ms)
#>  Installed pillar 1.7.0  (162ms)
#>  Installed pkgconfig 2.0.3  (87ms)
#>  Installed rlang 1.0.2  (39ms)
#>  Installed tibble 3.1.7  (41ms)
#>  Installed utf8 1.2.2  (39ms)
#>  Installed vctrs 0.4.1  (32ms)
#>  1 pkg + 12 deps: added 13, dld 1 (209.24 kB) [1.8s]

pak::pkg_install("tibble?reinstall")

#>
#> → Will install 1 package.
#> → The package (724.32 kB) is cached.
#> + tibble   3.1.7
#>  No downloads are needed, 1 pkg (724.32 kB) is cached
#>  Installed tibble 3.1.7  (42ms)
#>  1 pkg + 12 deps: kept 11, added 1 [343ms]

How do I install a dependency from a binary package

Sometimes it is sufficient to install the binary package of an older version of a dependency, instead of the newer source package that potentially needs compilers, system tools or libraries.

pkg_install() and lockfile_create() default to upgrade = FALSE, which always chooses binaries over source packages, so if you use pkg_install() you don't need to do anything extra.

The local_install_* functions default to upgrade = TRUE, as does pak() with pkg = NULL, so for these you need to explicitly use upgrade = FALSE.

How do I install a package from source?

To force the installation of a source package (instead of a binary package), use the ?source parameter:

pak::pkg_install("tibble?source")

#>
#> → Will install 1 package.
#> → The package (672.34 kB) is cached.
#> + tibble   3.1.7 👷🏼‍♀️🔧
#>  No downloads are needed, 1 pkg (672.34 kB) is cached
#>  Building tibble 3.1.7
#>  Built tibble 3.1.7 (3.1s)
#>  Installed tibble 3.1.7  (35ms)
#>  1 pkg + 12 deps: kept 11, added 1 [4.1s]

How do I install the latest version of a dependency?

If you want to always install a dependency from source, because you want the latest version or some other reason, you can use the source parameter with the <package>= form: <package>=?source. For example to install tibble, with its cli dependency installed from source you could write:

pak::pkg_install(c("tibble", "cli=?source"))

#>
#> → Will install 1 package.
#> → The package (540.04 kB) is cached.
#> + cli   3.3.0 👷🏽🔧
#>  No downloads are needed, 1 pkg (540.04 kB) is cached
#>  Building cli 3.3.0
#>  Built cli 3.3.0 (4.5s)
#>  Installed cli 3.3.0  (68ms)
#>  1 pkg + 12 deps: kept 11, added 1 [4.9s]

How do I ignore an optional dependency?

pak::pkg_install(
  c("tibble", "DiagrammeR=?ignore", "formattable=?ignore"),
  dependencies = TRUE
)

#>
#>  No downloads are needed
#>  1 pkg + 12 deps: kept 12 [583ms]

The syntax is

<packagename>=?ignore

Note that you can only ignore optional dependencies, i.e. packages in Suggests and Enhances.

Others

How can I use pak with renv?

Since version 1.0.0 renv has official support for using pak. This needs to be enabled with the renv.config.pak.enabled option or the RENV_CONFIG_PAK_ENABLED environment variable set to TRUE. For more information see the renv documentation.