DPM Use Cases
Package Lifecycle Management
Package lifecycle management includes:
- Install a package.
- Update a package.
- Downgrade a package.
- Remove a package.
- Reinstall a package.
With the exception of removing a package, all operations require the package of the version being installed to be supplied to the utility. DPM does not cache packages.
When reinstalling, updating, or downgrading, all non-controlled files are optionally forcibly replaced if supplied the option to tell it to do so.
When removing a package, only controlled files are removed unless the option to include non-controlled files is supplied.
Installed Package Reporting
DPM can query it’s DPMDB
of installed packages for any of the attributes stored in the DPM Backing Tree
to provide the user with information about any or all of the packages installed on the system.
- list all packages installed
- list which installed package(s) provide which file path on the system, such as a shared object or binary path
- list which files an installed package provides by package name, including controlled and non-controlled files.
- list installed packages by name whose properties match supplied expressions for AUTHOR, MAINTAINER, ARCHITECTURE, DESCRIPTION, LICENSE, NAME, SOURCE, PROVIDES, REPLACES
- check the file integrity of an installed package (controlled files only by default, but can optionally include non-controlled files if the option is provided by the user) using the
CONTENTS_MANIFEST_DIGEST
andPACKAGE_DIGEST
checksums to compare against files deployed on the system by that package. - check the signature validity of the metadata for an installed package to ensure tampering has not occurred. this requires the package to be gpg signed and will fail if it is not signed.
- check the file integrity for all installed packages on the system
- check the signature validity for all installed packages on the system
- list the ARCHITECTURE, AUTHOR, MAINTAINER, DESCRIPTION, LICENSE, NAME, PACKAGE_DIGEST, PROVIDES, REPLACES, SOURCE, VERSION of an installed package
- list the immediate dependencies of an installed package
- list the computed dependency tree of an installed package
- list the hooks of an installed package by supplying the hook’s reserved filename.
- check the hooks’ file integrity for an installed package
- check the hooks’ file integrity for all installed packages
- list the cryptographic hashing method of a package
- list all packages installed whose cryptographic hashing method matches a supplied pattern
- list the full dependency tree map of all packages on the system
- list the audit history of package changes