openSUSE Zypper¶
openSUSE’s package manager.
mpm drives zypper in XML mode (--xmlout) and parses the result with
xmltodict: the most stable machine-readable output zypper offers. Every
call is pinned with --no-color and --no-abbrev (untruncated columns),
--non-interactive for unattended runs, and --no-cd --no-refresh so it
never touches removable media or auto-refreshes metadata (mpm refreshes
explicitly through sync).
Note
Both installed and search run search --details --type package:
--details is the only mode exposing versions, but it returns one row
per source package, architecture and past release. mpm drops
other-version rows and keeps the highest edition per package name to
collapse those duplicates.
Documentation:
https://documentation.suse.com/smart/systems-management/html/concept-zypper/index.html
https://wiki.archlinux.org/title/Pacman/Rosetta (command equivalences)
Home page: https://en.opensuse.org/Portal:Zypper
Version requirement:
>=1.14.0
Platforms¶
🅱️ BSD
🐧 Linux
⨂ Unix
Operations¶
Operation |
Supported |
|---|---|
|
✓ |
|
✓ |
|
✓ |
|
✓ |
|
✓ |
|
✓ |
|
✓ |
|
✓ |
|
✓ |
Ecosystem¶
Accepted purl types:
pkg:rpm,pkg:zypper
Usage¶
$ mpm --zypper installed
$ mpm --zypper search "query"
$ mpm --zypper upgrade --all
$ mpm install pkg:zypper/hello
$ mpm --dry-run --zypper upgrade --all
Every example above accepts --dry-run, which simulates the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.
Deselect the manager for a single run with --no-zypper, disable it from your configuration, or tune its invocation attributes with per-manager overrides.
Command line¶
CLI names, in lookup order:
zypperArguments forced before each call:
--no-color --no-abbrev --non-interactive --no-cd --no-refresh
The version is probed by running:
$ zypper --version
zypper 1.14.11
and extracted with:
r"zypper\s+(?P<version>\S+)"
Privilege escalation¶
System-wide manager: mpm wraps its privileged operations in sudo out of the box. Instead of letting the tool prompt mid-run, mpm primes the credential cache up-front, with a single branded password prompt at most. Turn escalation off for rootless setups with --no-sudo or the per-manager sudo override.
See privilege escalation for the full policy.
Cooldown¶
State of openSUSE Zypper’s release-age gating, from the cooldown support table:
Status: ❌ None
With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --allow-unsupported-managers opts back in.
Reference traces¶
Raw native outputs captured in the manager source: the reference mpm’s parsers were written against. If you know openSUSE Zypper well and a transcript below looks wrong, or a newer release changed its output format, report it.
$ zypper --no-color --no-abbrev --non-interactive --no-cd --no-refresh --xmlout list-updates
<?xml version='1.0'?>
<stream>
<message type="info">Loading repository data...</message>
<message type="info">Reading installed packages...</message>
<update-status version="0.6">
<update-list>
<update name="git" kind="package" edition="2.34.1-10.9.1"
edition-old="2.26.2-3.34.1" arch="x86_64">
<summary>Fast, scalable revision control system</summary>
<description>
Git is a fast, scalable, distributed revision
control system.
</description>
<license/>
<source
url="http://download.opensuse.org/updata/leap/15.3/sle"
alias="repo-sle-update"/>
</update>
<update name="vim" kind="package" edition="9.0.1234-1.1"
edition-old="8.2.4956-1.1" arch="x86_64">
<summary>Vi IMproved text editor</summary>
<description>
Highly configurable text editor.
</description>
<license/>
<source
url="http://download.opensuse.org/update/leap/15.3/sle"
alias="repo-sle-update"/>
</update>
</update-list>
</update-status>
</stream>