RPM packages (zypper)
Manage host packages on openSUSE and SUSE Linux Enterprise. Both zypper and rpm must be on PATH.
[bootstrap.packages]
"zypper:libopenssl-devel" = "latest"
"zypper:ripgrep" = "latest"
"zypper:bash" = "5.2.37-2.1" # example version-release pinPreview and apply
mise bootstrap packages status
mise bootstrap packages apply --manager zypper --dry-run
mise bootstrap packages apply --manager zypperTo record and install a package together, use mise bootstrap packages use zypper:ripgrep. Unavailable managers are skipped when applying a shared configuration; explicitly selecting --manager zypper fails if the manager is unavailable.
Behavior
- State is checked through the local RPM database with
rpm -q, without refreshing repositories or elevating privileges. - Missing packages and mismatched pins use
zypper --non-interactive install, elevated through mise's sudo policy. apply --updaterunszypper --non-interactive refreshfirst. Otherwise, zypper follows the repositories' automatic refresh settings.upgraderefreshes metadata and installs the requested versions of configured, already-installed packages. Missing packages are skipped.- Commands retain zypper's configured dependency, license, and signature policies. Non-interactive mode fails if a required confirmation cannot be answered.
- Reboot-required (102) produces a warning. Package-manager-restart-required (103) warns and retries the same command up to twice; a third 103 is an error. Other nonzero statuses, including skipped repositories and failed RPM scripts, are reported as errors.
Version selection
Pins are passed as name=version or name=version-release. A version-only pin accepts any release of that exact version; it does not match a version prefix. Pinned installation allows downgrades with --oldpackage.
The version above illustrates syntax. Choose a version available in the host's enabled repositories; mise does not add repositories or retrieve archived RPMs. "latest" accepts an already-installed package. Use upgrade to request updates.
Remove packages
[bootstrap.packages]
"zypper:ripgrep" = { state = "absent" }apply removes an installed package with zypper --non-interactive remove. An already-absent package is a no-op. Preview dependency removals with apply --dry-run and the printed zypper command's native --dry-run option.
Transactional systems
On read-only systems such as MicroOS, package changes require the distribution's transactional tooling. Where zypper provides a transactional wrapper, its normal snapshot and reboot requirements still apply; mise does not activate snapshots.