Public methods
Method new()
Create a new pkg_installation_proposal
object. Consider using
new_pkg_installation_proposal()
instead of calling the constructor
directly.
The returned object can be used to look up (recursive) dependencies
of R packages from various sources, and then download and install
the package files.
Usage
pkg_installation_proposal$new(
refs,
config = list(),
policy = c("lazy", "upgrade"),
remote_types = NULL
)
Arguments
refs
Package names or references. See
'Package references' for the syntax.
config
Configuration options, a named list. See
'Configuration'. It needs to include the package
library to install to, in library
.
policy
Solution policy. See 'The dependency solver'.
remote_types
Custom remote ref types, this is for advanced
use, and experimental currently.
Method get_refs()
The package refs that were used to create the
pkg_installation_proposal
object.
Usage
pkg_installation_proposal$get_refs()
Returns
A character vector of package refs that were used to create the
pkg_installation_proposal
object.
Method get_config()
Configuration options for the pkg_installation_proposal
object. See
'Configuration' for details.
Usage
pkg_installation_proposal$get_config()
Returns
Named list. See 'Configuration' for the configuration
options.
Method resolve()
Resolve the dependencies of the specified package references. This
usually means downloading metadata from CRAN and Bioconductor,
unless already cached, and also from GitHub if GitHub refs were
included, either directly or indirectly. See
'Dependency resolution' for details.
Usage
pkg_installation_proposal$resolve()
Returns
The pkg_installation_proposal
object, invisibly.
Method async_resolve()
The same as resolve()
, but asynchronous. This
method is for advanced use.
Usage
pkg_installation_proposal$async_resolve()
Returns
A deferred value.
Method get_resolution()
Query the result of the dependency resolution. This method can be
called after resolve()
has completed.
Usage
pkg_installation_proposal$get_resolution()
Returns
A pkg_resolution_result object, which is also a data frame. See
'Dependency resolution' for its columns.
Method get_solve_policy()
Returns the current policy of the dependency solver.
See 'The dependency solver' for details.
Usage
pkg_installation_proposal$get_solve_policy()
Returns
A character vector of length one.
Method set_solve_policy()
Set the current policy of the dependency solver.
If the object already contains a solution and the new policy is
different than the old policy, then the solution is deleted.
See 'The dependency solver' for details.
Usage
pkg_installation_proposal$set_solve_policy(policy = c("lazy", "upgrade"))
Arguments
policy
Policy to set.
Method solve()
Solve the package dependencies. Out of the resolved dependencies,
it works out a set of packages, that can be installed together to
create a functional installation. The set includes all directly
specified packages, and all required (or suggested, depending on
the configuration) packages as well. It includes every package at
most once. See 'The dependency solver' for details.
Usage
pkg_installation_proposal$solve()
Returns
The pkg_installation_proposal
object itself, invisibly.
Method get_solution()
Returns the solution of the package dependencies.
Usage
pkg_installation_proposal$get_solution()
Returns
A pkg_solution_result object, which is a list. See
pkg_solution_result for details.
Method show_solution()
Show the solution on the screen.
Usage
pkg_installation_proposal$show_solution(key = FALSE)
Arguments
key
Whether to show the key to the package list annotation.
Returns
A pkg_solution_result object, which is a list. See
pkg_solution_result for details.
Method stop_for_solution_error()
Error if the dependency solver failed to find a consistent set of
packages that can be installed together.
Usage
pkg_installation_proposal$stop_for_solution_error()
Method create_lockfile()
Create a lock file that contains the information to perform
the installation later, possibly in another R session.
Usage
pkg_installation_proposal$create_lockfile(path = "pkg.lock", version = 1)
Arguments
path
Name of the lock file. The default is pkg.lock
in the
current working directory.
version
Only version 1 is supported currently.
Details
Note, since the URLs of CRAN and most CRAN-like repositories change
over time, in practice you cannot perform the plan of the lock file
much later. For example, binary packages of older package version
are removed, and won't be found.
Similarly, for url::
remote types, the URL might hold an updated
version of the package, compared to when the lock file was created.
Should this happen, pkgdepends prints a warning, but it will try
to continue the installation. The installation might fail if the
updated package has different (e.g. new) dependencies.
Currently the intended use case of lock files in on CI systems, to
facilitate caching. The (hash of the) lock file provides a good key
for caching systems.
Method draw()
Draw a tree of package dependencies. It returns a tree
object, see
cli::tree()
. Printing this object prints the dependency tree to the
screen.
Usage
pkg_installation_proposal$draw()
Returns
A tree
object from the cli package, see cli::tree()
.
Method download()
Download all packages that are part of the solution. It uses the
package cache in the pkgcache package by default, to avoid downloads
if possible.
Usage
pkg_installation_proposal$download()
Returns
The pkg_installation_proposal
object itself, invisibly.
Method async_download()
The same as download()
, but asynchronous.
This method is for advanced use.
Usage
pkg_installation_proposal$async_download()
Returns
A deferred value.
Method get_downloads()
Returns the summary of the package downloads.
Usage
pkg_installation_proposal$get_downloads()
Returns
A pkg_download_result object, which is a list. See
pkg_download_result for details.
Method stop_for_download_error()
Throw and error if the some of the downloads have failed for the
most recent
pkg_installation_proposal$download()
call.
Usage
pkg_installation_proposal$stop_for_download_error()
Method install()
Install the downloaded packages. It calls install_package_plan()
.
Usage
pkg_installation_proposal$install()
Returns
The return value of install_package_plan()
.
Method install_sysreqs()
Install system requirements. It does nothing if system requirements
are turned off. It errors if we could not look up the system
requirements.
Create an installation plan for the downloaded packages.
Usage
pkg_installation_proposal$install_sysreqs()
Method get_install_plan()
Usage
pkg_installation_proposal$get_install_plan()
Returns
An installation plan, see 'Installation plans' for
the format.
Method format()
Format a pkg_installation_proposal
object, typically for printing.
Usage
pkg_installation_proposal$format(...)
Arguments
...
not used currently.
Returns
A character vector, each element should be a line in the printout.
Method print()
Prints a pkg_installation_proposal
object to the screen.
The printout includes:
The package refs.
The policy of the dependency solver.
Whether the object has the solved dependencies.
Whether the solution had errors.
Whether the object has downloads.
Whether the downloads had errors.
Advice on which methods to call next.
See the example below.
Usage
pkg_installation_proposal$print(...)
Arguments
...
not used currently.
Returns
The pkg_installation_proposal
object itself, invisibly.
Method clone()
The objects of this class are cloneable with this method.
Usage
pkg_installation_proposal$clone(deep = FALSE)
Arguments
deep
Whether to make a deep clone.