Support for APT (Advanced Packaging Tool)
Return the latest version of the named package available for upgrade or installation. If more than one package name is specified, a dict of name/version pairs is returned.
If the latest version of a given package is already installed, an empty string will be returned for that package.
CLI Example:
salt '*' pkg.available_version <package name>
salt '*' pkg.available_version <package1> <package2> <package3> ...
Compare two version strings.
CLI Example:
salt '*' pkg.compare '0.2.4-0' '<' '0.2.4.1-0'
salt '*' pkg.compare pkg1='0.2.4-0' oper='<' pkg2='0.2.4.1-0'
Delete a repo from the sources.list / sources.list.d
If the .list file is in the sources.list.d directory and the file that the repo exists in does not contain any other repo configuration, the file itself will be deleted.
The repo passed in must be a fully formed repository definition string.
CLI Examples:
salt '*' pkg.del_repo "myrepo definition"
salt '*' pkg.del_repo "myrepo definition" refresh=True
List the files that belong to a package, grouped by package. Not specifying any packages will return a list of _every_ file on the system's package database (not generally recommended).
CLI Examples:
salt '*' pkg.file_list httpd
salt '*' pkg.file_list httpd postfix
salt '*' pkg.file_list
List the files that belong to a package. Not specifying any packages will return a list of _every_ file on the system's package database (not generally recommended).
CLI Examples:
salt '*' pkg.file_list httpd
salt '*' pkg.file_list httpd postfix
salt '*' pkg.file_list
Display a repo from the sources.list / sources.list.d
The repo passwd in needs to be a complete repo entry.
CLI Examples:
salt '*' pkg.get_repo "myrepo definition"
Install the passed package, add refresh=True to update the dpkg database.
The name of the package to be installed. Note that this parameter is ignored if either "pkgs" or "sources" is passed. Additionally, please note that this option can only be used to install packages from a software repository. To install a package file manually, use the "sources" option.
Multiple Package Installation Options:
A list of packages to install from a software repository. Must be passed as a python list.
A list of DEB packages to install. Must be passed as a list of dicts, with the keys being package names, and the values being the source URI or local path to the package.
Returns a dict containing the new package names and versions:
{'<package>': {'old': '<old-version>',
'new': '<new-version>'}}
List the packages currently installed in a dict:
{'<package_name>': '<version>'}
External dependencies:
Virtual package resolution requires aptitude.
Without aptitude virtual packages will be reported as not installed.
CLI Example:
salt '*' pkg.list_pkgs
salt '*' pkg.list_pkgs httpd
Lists all repos in the sources.list (and sources.lists.d) files
CLI Example:
salt '*' pkg.list_repos
salt '*' pkg.list_repos disabled=True
List all available package upgrades.
CLI Example:
salt '*' pkg.list_upgrades
Modify one or more values for a repo. If the repo does not exist, it will be created, so long as the definition is well formed. For Ubuntu the "ppa:<project>/repo" format is acceptable. "ppa:" format can only be used to create a new repository.
The following options are available to modify a repo definition:
comps (a comma separated list of components for the repo, e.g. "main")
file (a file name to be used)
refresh (refresh the apt sources db when the mod is done)
keyserver (keyserver to get gpg key from)
keyid (key id to load with the keyserver argument)
key_url (URl to a gpg key to add to the apt gpg keyring)
consolidate (if true, will attempt to de-dup and consolidate sources)
CLI Examples:
salt '*' pkg.mod_repo 'myrepo definition' uri=http://new/uri
salt '*' pkg.mod_repo 'myrepo definition' comps=main,universe
Do a cmp-style comparison on two packages. Return -1 if pkg1 < pkg2, 0 if pkg1 == pkg2, and 1 if pkg1 > pkg2. Return None if there was a problem making the comparison.
CLI Example:
salt '*' pkg.perform_cmp '0.2.4-0ubuntu1' '0.2.4.1-0ubuntu1'
salt '*' pkg.perform_cmp pkg1='0.2.4-0ubuntu1' pkg2='0.2.4.1-0ubuntu1'
Remove a package via apt-get purge along with all configuration files and unused dependencies.
Returns a list containing the names of the removed packages
CLI Example:
salt '*' pkg.purge <package name>
Updates the APT database to latest packages based upon repositories
Returns a dict, with the keys being package databases and the values being the result of the update attempt. Values can be one of the following:
True: Database updated successfully False: Problem updating database None: Database already up-to-date
CLI Example:
salt '*' pkg.refresh_db
Remove a single package via apt-get remove
Returns a list containing the names of the removed packages.
CLI Example:
salt '*' pkg.remove <package name>
Upgrades all packages via apt-get dist-upgrade
Returns a list of dicts containing the package names, and the new and old versions:
[
{'<package>': {'old': '<old-version>',
'new': '<new-version>'}
}',
...
]
CLI Example:
salt '*' pkg.upgrade
Check whether or not an upgrade is available for a given package
CLI Example:
salt '*' pkg.upgrade_available <package name>
Returns a string representing the package version or an empty string if not installed. If more than one package name is specified, a dict of name/version pairs is returned.
CLI Example:
salt '*' pkg.version <package name>
salt '*' pkg.version <package1> <package2> <package3> ...