Generic code for interacting with distribution package managers.
|: [ |
| `package_impl] Element.t
|: Impl.distro_implementation Support.Common.StringMap.t Pervasives.ref||;|
distribution#get_package_impls. It provides details of the query and a place to collect the results.
All IDs will start with this string (e.g. "package:deb")
Paths to search for missing binaries (i.e. the platform default for $PATH)
Can we use packages for this distribution? For example, MacPortsDistribution can use "MacPorts" and "Darwin" packages.
Test whether this <selection> element is still valid. The default implementation tries to load the feed from the
feed cache, calls
distribution#get_impls_for_feed on it and checks whether the required implementation ID is in the
returned map. Override this if you can provide a more efficient implementation.
Add the implementations for this feed to
get_impls_for_feed once for each <package-implementation> element.
This default implementation adds anything found previously by PackageKit.
Get the native implementations (installed or candidates for installation) for this feed.
This default implementation finds the best <package-implementation> elements and calls
get_package_impls on each one.
Install a set of packages of a given type (as set previously by
Normally called only by the
Check whether this name is possible for this distribution. The default implementation filters using
Called when an installed package is added, or when installation completes, to find the correct main value,
since we might not be able to work it out before-hand. The default checks that the path exists and, if not,
system_paths for it.
Note: Only called if the implementation already has a "run" command.
Install these packages using the distribution's package manager.
Sorts the implementations into groups by their type and then calls
distribution#install_distro_packages once for each group.