Package support for openSUSE via the zypper package manager
depends: |
|
---|
Important
If you feel that Salt should be using this module to manage packages on a minion, and it is using a different module (or gives an error similar to 'pkg.install' is not available), see here.
salt.modules.zypperpkg.
Wildcard
(zypper)
New in version 2017.7.0.
Converts string wildcard to a zypper query. .. rubric:: Example
'1.2.3.4*' is '1.2.3.4.whatever.is.here' and is equal to: '1.2.3.4 >= and < 1.2.3.5'
Parameters: | ptn -- Pattern |
---|---|
Returns: | Query range |
Z_OP
= ['<', '<=', '=', '>=', '>']
Add a package lock. Specify packages to lock by exact name.
CLI Example:
salt '*' pkg.add_lock <package name> salt '*' pkg.add_lock <package1>,<package2>,<package3> salt '*' pkg.add_lock pkgs='["foo", "bar"]'
Remove unused locks that do not currently (with regard to repositories used) lock any package.
CLI Example:
salt '*' pkg.clean_locks
Delete a repo.
CLI Examples:
salt '*' pkg.del_repo alias
Return a formatted diff between current files and original in a package. NOTE: this function includes all files (configuration and not), but does not work on binary content.
Parameters: | path -- Full path to the installed file |
---|---|
Returns: | Difference string or raises and exception if examined file is binary. |
CLI example:
salt '*' pkg.diff /etc/apache2/httpd.conf /etc/sudoers
Download packages to the local disk.
CLI example:
salt '*' pkg.download httpd salt '*' pkg.download httpd postfix
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 rpm 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 rpm database (not generally recommended).
CLI Examples:
salt '*' pkg.file_list httpd salt '*' pkg.file_list httpd postfix salt '*' pkg.file_list
Display a repo.
CLI Example:
salt '*' pkg.get_repo alias
Return the information of the named package available for the system.
CLI example:
salt '*' pkg.info_available <package1> salt '*' pkg.info_available <package1> <package2> <package3> ...
Return the information of the named package(s), installed on the system.
Parameters: |
|
---|
CLI example:
salt '*' pkg.info_installed <package1> salt '*' pkg.info_installed <package1> <package2> <package3> ... salt '*' pkg.info_installed <package1> <package2> <package3> all_versions=True salt '*' pkg.info_installed <package1> attr=version,vendor all_versions=True salt '*' pkg.info_installed <package1> <package2> <package3> ... attr=version,vendor salt '*' pkg.info_installed <package1> <package2> <package3> ... attr=version,vendor errors=ignore salt '*' pkg.info_installed <package1> <package2> <package3> ... attr=version,vendor errors=report
Changed in version 2015.8.12,2016.3.3,2016.11.0: On minions running systemd>=205, systemd-run(1) is now used to isolate commands which modify installed packages from the salt-minion
daemon's control group. This is done to keep systemd from killing any zypper commands spawned by Salt when the salt-minion
service is restarted. (see KillMode
in the systemd.kill(5) manpage for more information). If desired, usage of systemd-run(1) can be suppressed by setting a config option
called systemd.scope
, with a value of False
(no quotes).
Install the passed package(s), add refresh=True to force a 'zypper refresh' before package is installed.
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.
CLI Example:
salt '*' pkg.install <package name>
--no-gpg-checks
)pkgs
or sources
is passed.Multiple Package Installation Options:
A list of packages to install from a software repository. Must be passed as a python list. A specific version number can be specified by using a single-element dict representing the package and its version. As with the version
parameter above, comparison operators can be used to target a specific version of a package.
CLI Examples:
salt '*' pkg.install pkgs='["foo", "bar"]'
salt '*' pkg.install pkgs='["foo", {"bar": "1.2.3-4"}]'
salt '*' pkg.install pkgs='["foo", {"bar": "<1.2.3-4"}]'
A list of RPM 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.
CLI Example:
salt '*' pkg.install sources='[{"foo": "salt://foo.rpm"},{"bar": "salt://bar.rpm"}]'
If a list of package attributes is specified, returned value will contain them, eg.:
{'<package>': { 'old': { 'version': '<old-version>', 'arch': '<old-arch>'}, 'new': { 'version': '<new-version>', 'arch': '<new-arch>'}}}
Valid attributes are: epoch
, version
, release
, arch
, install_date
, install_date_time_t
.
If all
is specified, all valid attributes will be returned.
New in version 2018.3.0.
Returns a dict containing the new package names and versions:
{'<package>': {'old': '<old-version>', 'new': '<new-version>'}}
If an attribute list is specified in diff_attr
, the dict will also contain any specified attribute, eg.:
{'<package>': { 'old': { 'version': '<old-version>', 'arch': '<old-arch>'}, 'new': { 'version': '<new-version>', 'arch': '<new-arch>'}}}
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 dict will be returned for that package.
CLI example:
salt '*' pkg.latest_version <package name> salt '*' pkg.latest_version <package1> <package2> <package3> ...
New in version 2017.7.0.
List prefetched packages downloaded by Zypper in the local disk.
CLI example:
salt '*' pkg.list_downloaded
New in version 2017.7.0.
List installed advisory patches on the system.
CLI Examples:
salt '*' pkg.list_installed_patches
List installed patterns on the system.
CLI Examples:
salt '*' pkg.list_installed_patterns
List current package locks.
Return a dict containing the locked package with attributes:
{'<package>': {'case_sensitive': '<case_sensitive>', 'match_type': '<match_type>' 'type': '<type>'}}
CLI Example:
salt '*' pkg.list_locks
New in version 2017.7.0.
List all known advisory patches from available repos.
CLI Examples:
salt '*' pkg.list_patches
List all known patterns from available repos.
CLI Examples:
salt '*' pkg.list_patterns
List the packages currently installed as a dict. By default, the dict contains versions as a comma separated string:
{'<package_name>': '<version>[,<version>...]'}
If set to true, the versions are provided as a list
{'<package_name>': ['<version>', '<version>']}
If a list of package attributes is specified, returned value will contain them in addition to version, eg.:
{'<package_name>': [{'version' : 'version', 'arch' : 'arch'}]}
Valid attributes are: epoch
, version
, release
, arch
, install_date
, install_date_time_t
.
If all
is specified, all valid attributes will be returned.
New in version 2018.3.0.
CLI Example:
salt '*' pkg.list_pkgs salt '*' pkg.list_pkgs attr=version,arch salt '*' pkg.list_pkgs attr='["version", "arch"]'
List all available or installed SUSE products.
Includes handling for OEM products, which read the OEM productline file and overwrite the release value.
CLI Examples:
salt '*' pkg.list_products salt '*' pkg.list_products all=True
New in version 2018.3.0.
List package provides of installed packages as a dict. {'<provided_name>': ['<package_name>', '<package_name>', ...]}
CLI Examples:
salt '*' pkg.list_provides
New in version 2017.7.5,2018.3.1.
Returns all available packages. Optionally, package names (and name globs) can be passed and the results will be filtered to packages matching those names. This is recommended as it speeds up the function considerably.
This function can be helpful in discovering the version or repo to specify in a pkg.installed
state.
The return data will be a dictionary mapping package names to a list of version numbers, ordered from newest to oldest. If byrepo
is set to True
, then the return dictionary will contain repository names at the top level, and each repository will map packages to lists of version numbers. For example:
# With byrepo=False (default) { 'bash': ['4.3-83.3.1', '4.3-82.6'], 'vim': ['7.4.326-12.1'] } { 'OSS': { 'bash': ['4.3-82.6'], 'vim': ['7.4.326-12.1'] }, 'OSS Update': { 'bash': ['4.3-83.3.1'] } }
True
, the return data for each package will be organized by repository.CLI Examples:
salt '*' pkg.list_repo_pkgs salt '*' pkg.list_repo_pkgs foo bar baz salt '*' pkg.list_repo_pkgs 'python2-*' byrepo=True salt '*' pkg.list_repo_pkgs 'python2-*' fromrepo='OSS Updates'
Lists all repos.
CLI Example:
salt '*' pkg.list_repos
List all available package upgrades on this system
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 following values are specified:
Key/Value pairs may also be removed from a repo's configuration by setting a key to a blank value. Bear in mind that a name cannot be deleted, and a URL can only be deleted if a mirrorlist
is specified (or vice versa).
CLI Examples:
salt '*' pkg.mod_repo alias alias=new_alias salt '*' pkg.mod_repo alias url= mirrorlist=http://host.com/
List the modified files that belong to a package. Not specifying any packages will return a list of _all_ modified files on the system's RPM database.
New in version 2015.5.0.
Filtering by flags (True or False):
CLI Examples:
salt '*' pkg.modified salt '*' pkg.modified httpd salt '*' pkg.modified httpd postfix salt '*' pkg.modified httpd owner=True group=False
Strips the architecture from the specified package name, if necessary. Circumstances where this would be done include:
noarch
.CLI Example:
salt '*' pkg.normalize_name zsh.x86_64
Return the name of the package that owns the file. Multiple file paths can be passed. If a single path is passed, a string will be returned, and if multiple paths are passed, a dictionary of file/package name pairs will be returned.
If the file is not owned by a package, or is not present on the minion, then an empty string will be returned for that path.
CLI Examples:
salt '*' pkg.owner /usr/bin/apachectl salt '*' pkg.owner /usr/bin/apachectl /etc/httpd/conf/httpd.conf
Changed in version 2015.8.12,2016.3.3,2016.11.0: On minions running systemd>=205, systemd-run(1) is now used to isolate commands which modify installed packages from the salt-minion
daemon's control group. This is done to keep systemd from killing any zypper commands spawned by Salt when the salt-minion
service is restarted. (see KillMode
in the systemd.kill(5) manpage for more information). If desired, usage of systemd-run(1) can be suppressed by setting a config option
called systemd.scope
, with a value of False
(no quotes).
Recursively remove a package and all dependencies which were installed with it, this will call a zypper -n remove -u
Multiple Package Options:
name
parameter will be ignored if this option is passed.New in version 0.16.0.
Returns a dict containing the changes.
CLI Example:
salt '*' pkg.purge <package name> salt '*' pkg.purge <package1>,<package2>,<package3> salt '*' pkg.purge pkgs='["foo", "bar"]'
Force a repository refresh by calling zypper refresh --force
, return a dict:
{'<database name>': Bool}
CLI Example:
salt '*' pkg.refresh_db
Changed in version 2015.8.12,2016.3.3,2016.11.0: On minions running systemd>=205, systemd-run(1) is now used to isolate commands which modify installed packages from the salt-minion
daemon's control group. This is done to keep systemd from killing any zypper commands spawned by Salt when the salt-minion
service is restarted. (see KillMode
in the systemd.kill(5) manpage for more information). If desired, usage of systemd-run(1) can be suppressed by setting a config option
called systemd.scope
, with a value of False
(no quotes).
Remove packages with zypper -n remove
Multiple Package Options:
name
parameter will be ignored if this option is passed.New in version 0.16.0.
Returns a dict containing the changes.
CLI Example:
salt '*' pkg.remove <package name> salt '*' pkg.remove <package1>,<package2>,<package3> salt '*' pkg.remove pkgs='["foo", "bar"]'
Remove specified package lock.
CLI Example:
salt '*' pkg.remove_lock <package name> salt '*' pkg.remove_lock <package1>,<package2>,<package3> salt '*' pkg.remove_lock pkgs='["foo", "bar"]'
New in version 2018.3.0.
Convert name provides in pkgs
into real package names if resolve_capabilities
parameter is set to True. In case of resolve_capabilities
is set to False the package list is returned unchanged.
CLI Examples:
salt '*' pkg.resolve_capabilities resolve_capabilities=True w3m_ssl
List known packags, available to the system.
CLI Examples:
salt '*' pkg.search <criteria>
Changed in version 2015.8.12,2016.3.3,2016.11.0: On minions running systemd>=205, systemd-run(1) is now used to isolate commands which modify installed packages from the salt-minion
daemon's control group. This is done to keep systemd from killing any zypper commands spawned by Salt when the salt-minion
service is restarted. (see KillMode
in the systemd.kill(5) manpage for more information). If desired, usage of systemd-run(1) can be suppressed by setting a config option
called systemd.scope
, with a value of False
(no quotes).
Run a full system upgrade, a zypper upgrade
--no-gpg-checks
)Returns a dictionary containing the changes:
{'<package>': {'old': '<old-version>', 'new': '<new-version>'}}
CLI Example:
salt '*' pkg.upgrade salt '*' pkg.upgrade dist-upgrade=True fromrepo='["MyRepoName"]' novendorchange=True salt '*' pkg.upgrade dist-upgrade=True dryrun=True
Check whether or not an upgrade is available for a given package
CLI Example:
salt '*' pkg.upgrade_available <package name>
Runs an rpm -Va on a system, and returns the results in a dict
Files with an attribute of config, doc, ghost, license or readme in the package header can be ignored using the ignore_types
keyword argument
CLI Example:
salt '*' pkg.verify salt '*' pkg.verify httpd salt '*' pkg.verify 'httpd postfix' salt '*' pkg.verify 'httpd postfix' ignore_types=['config','doc']
Returns a string representing the package version or an empty dict 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> ...
New in version 2015.5.4.
Do a cmp-style comparison on two packages. Return -1 if ver1 < ver2, 0 if ver1 == ver2, and 1 if ver1 > ver2. Return None if there was a problem making the comparison.
Set to True
to ignore the epoch when comparing versions
New in version 2015.8.10,2016.3.2.
CLI Example:
salt '*' pkg.version_cmp '0.2-001' '0.2.0.1-002'
© 2019 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.zypperpkg.html