zypper provides a number of commands. Each command accepts the options listed in the GLOBALOPTIONS
section. These options must be specified before the command name. In addition, many commands have
specific options, which are listed in this section. These command-specific options must be specified
after the name of the command and before any of the command arguments.
Zypper also provides limited support for writing extensions/subcommands in any language. See section
SUBCOMMANDS for details.
GeneralCommandshelp [command]
Shows help texts. If invoked without any argument (just zypper or zypperhelp), zypper displays
global help text which lists all available global options and commands.
If invoked with a command name argument, zypper displays help for the specified command, if such
command exists. Long as well as short variants of the command names can be used.
For your convenience, zypperhelp can also be invoked in any of the following ways:
$ zypper-h|--help [command]
$ zypper [command] -h|--helpshell (sh)
Starts a shell for entering multiple commands in one session. Exit the shell using exit, quit, or
Ctrl-D.
The shell support is not complete so expect bugs there. However, there’s no urgent need to use the
shell since libzypp became so fast thanks to the SAT solver and its tools (openSUSE 11.0), but still,
you’re welcome to experiment with it.
PackageManagementCommandsinfo (if) [options] name[-version[-release]]...
Show detailed information for specified packages. By default, only packages that exactly match the
provided names are shown. To include packages that partially match, use the --match-substrings option
or wildcards (* or ?) within the name.
If no version constraint is specified, information about the best available package is shown. Note
that both the version and release numbers must always match exactly.
If a query returns no results, zypper returns ZYPPER_EXIT_INF_CAP_NOT_FOUND unless the global option
--ignore-unknown is set.
-s, --match-substrings
Include packages that partially match the provided names.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number or URI. This option can be
used multiple times.
-t, --typetype
Type of package (default: package). See section PackageTypes for list of available package
types.
--provides
Show symbols the package provides.
--requires
Show symbols the package requires.
--conflicts
Show symbols the package conflicts with.
--obsoletes
Show symbols the package obsoletes.
--recommends
Show symbols the package recommends.
--suggests
Show symbols the package suggests.
--supplements
Show symbols the package supplements.
--enhances
Show symbols the package enhances.
Examples:
$ zypperinfoworkrave
Show information about packageworkrave
$ zypperinfo-tpatchlibzypp
Show information about patchlibzypp
$ zypperinfo-tpatternlamp_server
Show information about patternlamp_serverinstall (in) [options] name|capability|rpm_file_uri...
Install or update packages.
The packages can be selected by their name or by a capability they provide.
A capability is formed by "NAME[.ARCH][ OPEDITION]", where ARCH is an architecture code, OP is one
of <, <=, =, >=, or > and EDITION is "VERSION[-RELEASE]". For example: zypper=0.8.8-2.
The NAME component of a capability is not only a package name but any symbol provided by
packages: /bin/vi, libcurl.so.3, perl(Time::ParseDate). Just remember to quote to protect the
special characters from the shell, for example: zypper\>0.8.10 or 'zypper>0.8.10'.
If EDITION is not specified, the newest installable version will be installed. This also means
that if the package is already installed and newer versions are available, it will get upgraded
to the newest installable version.
If ARCH is not specified, or the last dot of the capability name string is not followed by known
architecture, the solver will treat the whole string as a capability name. If the ARCH is known,
the solver will select a package matching that architecture and complain if such package cannot
be found.
If you want to make sure a package from a specific REPOSITORY is picked, use
REPOSITORY:PACKAGENAME as argument.
Zypper is also able to install plainRPMfiles while trying to satisfy their dependencies using
packages from defined repositories. You can install a plain RPM file by specifying its location in
the install command arguments either as a local path or an URI. E.g.:
$ zypperinstall~/rpms/foo.rpmhttp://some.site/bar.rpm
Zypper will report packages that it cannot find. Further, in interactive mode, zypper proceeds
with installation of the rest of requested packages, and it will abort immediately in
non-interactive mode. In both cases zypper returns ZYPPER_EXIT_INF_CAP_NOT_FOUND after finishing
the operation.
Zypper will collect the files in a temporary plaindir repository and mark the respective packages
for installation. If --download-only is used, the downloaded packages will be available in
/var/cache/zypper/RPMS until you actually install them or call zypperclean to clear the package
caches. They will not become part of the global package cache at /var/cache/zypp/packages (see
also the global --pkg-cache-dir option).
In the install command, you can also specify packages you wish to remove by prepending their names by
a - or ! character. For example:
$ zypperinstall\!Firefox
In contrast to zypperremoveFirefox which removes Firefox and its dependent packages, the
install command will try to keep dependent packages installed by looking for Firefox
alternatives.
Note that if you choose to use - with the first package you specify, you need to write -- before
it to prevent its interpretation as a command option:
$ zypperinstall---boring-gamegreat-gamegreat-game-manual
-r, --repo alias|name|#|URI
Work only with the repository specified by the alias, name, number or URI. This option can be
used multiple times.
Using --repo is discouraged as it currently hides unmentioned repositories from the resolver,
leading to inexpertly decisions. In the future --repo will become an alias for --from.
If you want to install a package from a specific repository, use REPOSITORY:PACKAGENAME as
argument.
-t, --typetype
Type of package to install (default: package). See section PackageTypes for list of available
package types. Use zypperse-ttype [name] to look for available items of this type and zypperinfo-ttypename to display more detailed information about the item.
If patch is specified, zypper will install and/or remove packages to satisfy specified patch.
This is a way to ensure that specific bug fix is installed. Use zypperlist-patches to look for
applicable patches.
If product or pattern are specified, zypper ensures that all required (and optionally
recommended) packages are installed.
-n, --name
Select packages by their name, don’t try to select by capabilities.
-f, --force
Install even if the item is already installed (reinstall), downgraded or changes vendor or
architecture.
--oldpackage
Allows one to replace a newer item with an older one. Handy if you are doing a rollback. Unlike
--force it will not enforce a reinstall, if the item is already installed with the requested
version.
--fromalias|name|#|URI
Select packages from specified repository. If strings specified as arguments to the install
command match packages in repositories specified in this option, they will be marked for
installation. This option currently implies --name, but allows using wildcards for specifying
packages.
-C, --capability
Select packages by capabilities.
-l, --auto-agree-with-licenses
Automatically say yes to third party license confirmation prompt. By using this option, you
choose to agree with licenses of all third-party software this command will install. This option
is particularly useful for administrators installing the same set of packages on multiple
machines (by an automated process) and have the licenses confirmed before.
--auto-agree-with-product-licenses
Automatically accept product licenses only. This is used by tools like SUSEconnect, which ask for
confirmation before the product gets registered. So there’s no need to confirm the product
license again at install time.
--replacefiles
Install the packages even if they replace files from other, already installed, packages. Default
is to treat file conflicts as an error. --download-as-needed disables the file conflict check
because access to all packages file lists is needed in advance in order to perform the check.
-D, --dry-run
Test the installation, do not actually install any package. If used together with --download-only
a meaningful file conflict check can be performed (see section PackageFileConflicts).
--details
Show the detailed installation summary.
-y, --no-confirm
Don’t require user interaction. It’s recommended to use the --non-interactive global option
instead. Global options are passed before the command (zypper--non-interactiveCOMMAND...).
Unlike the no-confirm command option, the global option can be used together with any zypper
command.
--allow-unsigned-rpm
Silently install unsigned rpm packages given as commandline parameters.
Solver related options:
--debug-solver
Create solver test case for debugging. Use this option if you think the dependencies were not
solved correctly. When using this option no packages will be installed or removed. Instead a
solver test case is written to /var/log/zypper.solverTestCase. You can pack the directory and
attach it to your bug report.
--force-resolution
Force the solver to find a solution (evenanaggressiveone) rather than asking.
In order to perform the requested job the solver is allowed to violate any otherwise active
policy. This includes the allowance to remove packages but also not to respect even explicitly
set policies (by --no-allow-policy or in config files). Itisnotrecommendedtousethisoptioninunattendedenvironments.
The allowance to remove dependent packages is the default when removing packages (zypper remove).
-R, --no-force-resolution
Do not force the solver to find a solution. Instead, report dependency problems and prompt the
user to resolve them manually. This is the default except when removing packages (zypperremove).
--solver-focusMODE
Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update.
See section PackageDependencies for details.
--recommends
Install also recommended packages in addition to the required ones. The default behavior is
determined by [zypp.conf:solver.onlyRequires].
--no-recommends
Do not install recommended packages, but only required ones. The default behavior is determined
by [zypp.conf:solver.onlyRequires].
Download-and-install mode options:
-d, --download-only
Only download the packages for later installation (see also the global --pkg-cache-dir option).
If used together with --dry-run a meaningful file conflict check can be performed (see section
PackageFileConflicts).
--download-in-advance
First download all packages, then start installing. This is the default.
--download-in-heaps
Download a minimal set of packages that can be installed without leaving the system in broken
state, and install them. Then download and install another heap until all are installed. This
helps to keep the system in consistent state without the need to download all packages in
advance, which combines the advantages of --download-in-advance and --download-as-needed.
Note
While the resolver is not capable of building heaps, this behaves the same as
--download-in-advance.
--download-as-needed
Download one package, install it immediately, and continue with the rest until all are installed.
--downloadmode
Use the specified download-and-install mode. Available modes are: only, in-advance, in-heaps,
as-needed. See corresponding --download-mode options for their description.
Expert Options:
Don’t use them unless you know you need them.
--allow-downgrade, --no-allow-downgrade
Whether to allow downgrading installed resolvables.
--allow-name-change, --no-allow-name-change
Whether to allow changing the names of installed resolvables. Setting this to no will not replace
packages which have been renamed.
--allow-arch-change, --no-allow-arch-change
Whether to allow changing the architecture of installed resolvables.
--allow-vendor-change, --no-allow-vendor-change
Whether to allow changing the vendor of installed resolvables. Setting this to no might be useful
if you do not want packages from foreign repos being changed to the distributions version (or
vice versa).
Examples:
$ zypperinstall-tpatternlamp_server
Install lamp_server pattern.
$ zypperinstall--no-recommendsgv
Install GhostScript viewer, but ignore recommended packages.
$ zypperinstallvirtualbox-ose-2.0.6
$ zypperinstallvirtualbox-ose=2.0.6
$ zypperinstallvirtualbox-ose=2.0.6
Install version 2.0.6 of virtualbox-ose package.
source-install (si) name...
Install specified source packages and their build dependencies. If the name of a binary package is
given, the corresponding source package is looked up and installed instead.
This command will try to find the newest available versions of the source packages and uses rpm-i to
install them, optionally together with all the packages that are required to build the source
package. The default location where rpm installs source packages to is
/usr/src/packages/{SPECS,SOURCES}, but the values can be changed in your local rpm configuration. In
case of doubt try executing rpm--eval"%{_specdir}and%{_sourcedir}".
Note that the source packages must be available in repositories you are using. You can check whether
a repository contains any source packages using the following command:
$ zyppersearch-tsrcpackage-ralias|name|#|URI
$ zyppersearch-tsrcpackage-ralias|name|#|URI-d, --build-deps-only
Install only build dependencies of specified packages.
-D, --no-build-deps
Don’t install build dependencies.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
--download-only
Only download the packages, do not install.
Examples:
$ zyppersi-ddbus-1
Install build dependencies of dbus-1 source package.
verify (ve) [options]
Check whether dependencies of installed packages are satisfied.
In case that any dependency problems are found, zypper suggests packages to install or remove to fix
them.
-D, --dry-run
Test the repair, do not actually do anything to the system. If used together with --download-only
a meaningful file conflict check can be performed (see section PackageFileConflicts).
--details
Show the detailed installation summary.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
-y, --no-confirm
Don’t require user interaction. It’s recommended to use the --non-interactive global option
instead. Global options are passed before the command (zypper--non-interactiveCOMMAND...).
Unlike the no-confirm command option, the global option can be used together with any zypper
command.
Solver related options:
--debug-solver
Create solver test case for debugging. Use this option if you think the dependencies were not
solved correctly. When using this option no packages will be installed or removed. Instead a
solver test case is written to /var/log/zypper.solverTestCase. You can pack the directory and
attach it to your bug report.
--force-resolution
Force the solver to find a solution (evenanaggressiveone) rather than asking.
In order to perform the requested job the solver is allowed to violate any otherwise active
policy. This includes the allowance to remove packages but also not to respect even explicitly
set policies (by --no-allow-policy or in config files). Itisnotrecommendedtousethisoptioninunattendedenvironments.
The allowance to remove dependent packages is the default when removing packages (zypper remove).
-R, --no-force-resolution
Do not force the solver to find a solution. Instead, report dependency problems and prompt the
user to resolve them manually. This is the default except when removing packages (zypperremove).
--solver-focusMODE
Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update.
See section PackageDependencies for details.
--recommends
Install also recommended packages in addition to the required ones. The default behavior is
determined by [zypp.conf:solver.onlyRequires].
--no-recommends
Do not install recommended packages, but only required ones. The default behavior is determined
by [zypp.conf:solver.onlyRequires].
Expert Options:
Don’t use them unless you know you need them.
--allow-downgrade, --no-allow-downgrade
Whether to allow downgrading installed resolvables.
--allow-name-change, --no-allow-name-change
Whether to allow changing the names of installed resolvables. Setting this to no will not replace
packages which have been renamed.
--allow-arch-change, --no-allow-arch-change
Whether to allow changing the architecture of installed resolvables.
--allow-vendor-change, --no-allow-vendor-change
Whether to allow changing the vendor of installed resolvables. Setting this to no might be useful
if you do not want packages from foreign repos being changed to the distributions version (or
vice versa).
This command also accepts the Download-and-installmodeoptions described in the install command.
install-new-recommends (inr) [options]
Install newly added packages recommended by already installed ones. This command basically
re-evaluates the recommendations of all installed packages and fills up the system accordingly. Youdon’twanttocallthisunconditionally on small or minimal systems, as it may easily add a large
number of packages.
Called as zypperinr--no-recommends, it restricts the command to just look for packages supporting
available hardware, languages or filesystems. Useful after having added e.g. new hardware or driver
repos. This is also the default behavior if you have set [zypp.conf:solver.onlyRequires].
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
-D, --dry-run
Test the installation, do not actually install anything. If used together with --download-only a
meaningful file conflict check can be performed (see section PackageFileConflicts).
--details
Show the detailed installation summary.
Solver related options:
--debug-solver
Create solver test case for debugging. Use this option if you think the dependencies were not
solved correctly. When using this option no packages will be installed or removed. Instead a
solver test case is written to /var/log/zypper.solverTestCase. You can pack the directory and
attach it to your bug report.
--force-resolution
Force the solver to find a solution (evenanaggressiveone) rather than asking.
In order to perform the requested job the solver is allowed to violate any otherwise active
policy. This includes the allowance to remove packages but also not to respect even explicitly
set policies (by --no-allow-policy or in config files). Itisnotrecommendedtousethisoptioninunattendedenvironments.
The allowance to remove dependent packages is the default when removing packages (zypper remove).
-R, --no-force-resolution
Do not force the solver to find a solution. Instead, report dependency problems and prompt the
user to resolve them manually. This is the default except when removing packages (zypperremove).
--solver-focusMODE
Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update.
See section PackageDependencies for details.
--recommends
Install also recommended packages in addition to the required ones. The default behavior is
determined by [zypp.conf:solver.onlyRequires].
--no-recommends
Do not install recommended packages, but only required ones. The default behavior is determined
by [zypp.conf:solver.onlyRequires].
Expert Options:
Don’t use them unless you know you need them.
--allow-downgrade, --no-allow-downgrade
Whether to allow downgrading installed resolvables.
--allow-name-change, --no-allow-name-change
Whether to allow changing the names of installed resolvables. Setting this to no will not replace
packages which have been renamed.
--allow-arch-change, --no-allow-arch-change
Whether to allow changing the architecture of installed resolvables.
--allow-vendor-change, --no-allow-vendor-change
Whether to allow changing the vendor of installed resolvables. Setting this to no might be useful
if you do not want packages from foreign repos being changed to the distributions version (or
vice versa).
This command also accepts the Download-and-installmodeoptions described in the install command.
remove (rm) [options] name...
remove (rm) [options] --capabilitycapability...
Remove (uninstall) packages.
The remove command will uninstall the selected and their dependent packages. It will not try to
install alternatives in order to keep dependent packages installed. If you want this, use zypperinstall!name.
The packages can be selected by their name or by a capability they provide. For details on package
selection see the install command description.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
-t, --typetype
Type of package (default: package). See section PackageTypes for list of available package
types.
Since patches are not installed in sense of copying files or recording a database entry, they
cannot be uninstalled, even though zypper shows them as installed. The installed status is
determined solely based on the installed status of its required dependencies. If these
dependencies are satisfied, the patch is rendered installed.
-n, --name
Select packages by their name (default).
-C, --capability
Select packages by capabilities.
-D, --dry-run
Test the removal of packages, do not actually remove anything.
--details
Show the detailed installation summary.
-y, --no-confirm
Don’t require user interaction. It’s recommended to use the --non-interactive global option
instead. Global options are passed before the command (zypper--non-interactiveCOMMAND...).
Unlike the no-confirm command option, the global option can be used together with any zypper
command.
Solver related options:
--debug-solver
Create solver test case for debugging. Use this option if you think the dependencies were not
solved correctly. When using this option no packages will be installed or removed. Instead a
solver test case is written to /var/log/zypper.solverTestCase. You can pack the directory and
attach it to your bug report.
--force-resolution
Force the solver to find a solution (evenanaggressiveone) rather than asking.
In order to perform the requested job the solver is allowed to violate any otherwise active
policy. This includes the allowance to remove packages but also not to respect even explicitly
set policies (by --no-allow-policy or in config files). Itisnotrecommendedtousethisoptioninunattendedenvironments.
The allowance to remove dependent packages is the default when removing packages (zypper remove).
-R, --no-force-resolution
Do not force the solver to find a solution. Instead, report dependency problems and prompt the
user to resolve them manually. This is the default except when removing packages (zypperremove).
--solver-focusMODE
Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update.
See section PackageDependencies for details.
-u, --clean-deps
Automatically remove dependencies which become unneeded after removal of requested packages.
-U, --no-clean-deps
No automatic removal of unneeded dependencies.
removeptf (rmptf) [options] <PTF|CAPABILITY> ...
Remove (not only) PTFs.
A remove command which prefers replacing dependant packages to removing them as well. In fact this is
a full featured install command with the remove modifier (-) applied to its plain arguments. So
removeptffoo is the same as install—-foo. This is why the command accepts the same options as the
install command. It is the recommended way to remove a PTF (Program Temporary Fix).
A PTF is typically removed as soon as the fix it provides is applied to the latest official update of
the dependant packages. But you don’t want the dependant packages to be removed together with the
PTF, which is what the remove command would do. The removeptf command however will aim to replace the
dependant packages by their official update versions.
supportseveryoptiontheinstallcommandsupportspurge-kernels [options]
Autoremoves installed kernels.
Automatically cleans up installed kernels according to the rules defined in
[zypp.conf:multiversion.kernels] which can be given as <version>, latest[-N], running, oldest[+N].
--details
Show the detailed installation summary.
-D, --dry-run
Test the removal of packages, do not actually remove anything.
UpdateManagementCommandslist-updates (lu) [options]
List available updates.
This command will list only installable updates, i.e. updates which have no dependency problems, or
which do not change package vendor. This list is what the update command will propose to install. To
list all packages for which newer version are available, use --all option.
-t, --typetype
Type of package (default: package). See section PackageTypes for list of available package
types.
If patch is specified, zypper acts as if the list-patches command was executed.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
-a, --all
List all packages for which newer versions are available, regardless whether they are installable
or not.
--best-effort
See the update command for description.
Expert Options:
Don’t use them unless you know you need them.
--allow-downgrade, --no-allow-downgrade
Whether to allow downgrading installed resolvables.
--allow-name-change, --no-allow-name-change
Whether to allow changing the names of installed resolvables. Setting this to no will not replace
packages which have been renamed.
--allow-arch-change, --no-allow-arch-change
Whether to allow changing the architecture of installed resolvables.
--allow-vendor-change, --no-allow-vendor-change
Whether to allow changing the vendor of installed resolvables. Setting this to no might be useful
if you do not want packages from foreign repos being changed to the distributions version (or
vice versa).
update (up) [options] [packagename]...
Update installed packages with newer versions, where possible.
This command will not update packages which would require change of package vendor unless the vendor
is specified in /etc/zypp/vendors.d, or which would require manual resolution of problems with
dependencies. Such non-installable updates will then be listed in separate section of the summary as
"ThefollowingpackageupdateswillNOTbeinstalled:".
To update individual packages, specify one or more package names. You can use the * and ? wildcard
characters in the package names to specify multiple packages matching the pattern.
-t, --typetype
Type of package (default: package). See section PackageTypes for list of available package
types.
If patch is specified, zypper acts as if the patches command was executed.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
--skip-interactive
This will skip interactive patches, that is, those that need reboot, contain a message, or update
a package whose license needs to be confirmed.
--with-interactive
Avoid skipping of interactive patches when in non-interactive mode.
-l, --auto-agree-with-licenses
Automatically say yes to third party license confirmation prompt. By using this option, you
choose to agree with licenses of all third-party software this command will install. This option
is particularly useful for administrators installing the same set of packages on multiple
machines (by an automated process) and have the licenses confirmed before.
--auto-agree-with-product-licenses
Automatically accept product licenses only. This is used by tools like SUSEconnect, which ask for
confirmation before the product gets registered. So there’s no need to confirm the product
license again at install time.
--replacefiles
Install the packages even if they replace files from other, already installed, packages. Default
is to treat file conflicts as an error. --download-as-needed disables the fileconflict check
because access to all packages filelists is needed in advance in order to perform the check.
-D, --dry-run
Test the update, do not actually install or update any package. If used together with
--download-only a meaningful file conflict check can be performed (see section PackageFileConflicts).
--details
Show the detailed installation summary.
--best-effort
Do a besteffort approach to update. This method does not explicitly select packages with best
version and architecture, but instead requests installation of a package with higher version than
the installed one and leaves the rest on the dependency solver. This method is always used for
packages, and is optional for products and patterns. It is not applicable to patches.
-y, --no-confirm
Don’t require user interaction. It’s recommended to use the --non-interactive global option
instead. Global options are passed before the command (zypper--non-interactiveCOMMAND...).
Unlike the no-confirm command option, the global option can be used together with any zypper
command.
Solver related options:
--debug-solver
Create solver test case for debugging. Use this option if you think the dependencies were not
solved correctly. When using this option no packages will be installed or removed. Instead a
solver test case is written to /var/log/zypper.solverTestCase. You can pack the directory and
attach it to your bug report.
--force-resolution
Force the solver to find a solution (evenanaggressiveone) rather than asking.
In order to perform the requested job the solver is allowed to violate any otherwise active
policy. This includes the allowance to remove packages but also not to respect even explicitly
set policies (by --no-allow-policy or in config files). Itisnotrecommendedtousethisoptioninunattendedenvironments.
The allowance to remove dependent packages is the default when removing packages (zypper remove).
-R, --no-force-resolution
Do not force the solver to find a solution. Instead, report dependency problems and prompt the
user to resolve them manually. This is the default except when removing packages (zypperremove).
--solver-focusMODE
Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update.
See section PackageDependencies for details.
--recommends
Install also recommended packages in addition to the required ones. The default behavior is
determined by [zypp.conf:solver.onlyRequires].
--no-recommends
Do not install recommended packages, but only required ones. The default behavior is determined
by [zypp.conf:solver.onlyRequires].
Expert Options:
Don’t use them unless you know you need them.
--allow-downgrade, --no-allow-downgrade
Whether to allow downgrading installed resolvables.
--allow-name-change, --no-allow-name-change
Whether to allow changing the names of installed resolvables. Setting this to no will not replace
packages which have been renamed.
--allow-arch-change, --no-allow-arch-change
Whether to allow changing the architecture of installed resolvables.
--allow-vendor-change, --no-allow-vendor-change
Whether to allow changing the vendor of installed resolvables. Setting this to no might be useful
if you do not want packages from foreign repos being changed to the distributions version (or
vice versa).
This command also accepts the Download-and-installmodeoptions described in the install command
description.
list-patches (lp) [options]
List all applicable patches.
This command is similar to zypperlist-updates-tpatch.
Note that optionalarguments of some of the following options must be specified using = instead of a
space.
-b, --bugzilla[=#[,...]]
List applicable patches for all Bugzilla issues, or issues whose number matches the given string.
--cve[=#[,...]]
List applicable patches for all CVE issues, or issues whose number matches the given string.
--dateYYYY-MM-DD[,...]
List only patches issued up to, but not including, the specified date.
-g, --categorycategory[,...]
List only patches with this category. See section PackageTypes for a list of commonly used
category values.
--severityseverity[,...]
List only patches with this severity. See section PackageTypes for a list of commonly used
severity values.
--issue[=string[,...]]
Look for issues whose number, summary, or description matches the specified string. Issues found
by number are displayed separately from those found by descriptions. In the latter case, use
zypperpatch-infopatchname to get information about issues the patch fixes.
-a, *--all
By default, only patches that are applicable on your system are listed. This option causes all
available released patches to be listed. This option can be combined with all the rest of the
list-updates command options.
--with-optional, --without-optional
Whether applicable optional patches should be treated as needed or be excluded. The default is to
exclude optional patches.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
patch-check (pchk)
Check for patches. Displays a count of applicable patches and how many of them have the security
category.
See also the EXITCODES section for details on exit status of 0, 100, and 101 returned by this
command.
--updatestack-only
Check only for patches which affect the package management itself.
--with-optional, --without-optional
Whether applicable optional patches should be treated as needed or be excluded. The default is to
exclude optional patches.
-r, --repoalias|name|#|URI
Check for patches only in the repository specified by the alias, name, number, or URI. This
option can be used multiple times.
patch [options]
Install all available needed patches.
When updating the affected/vulnerable packages described by a patch, zypper always aims for the
latest available version. See section PackageTypes for more details about how patches operate.
If there are patches that affect the package management itself, those will be installed first and you
will be asked to run the patch command again.
This command is similar to zypperupdate-tpatch.
--updatestack-only
Install only patches which affect the package management itself and exit.
--skip-not-applicable-patches
Skip needed patches which do not apply without conflict. In normal operation mode those conflicts
have to be resolved interactively, otherwise the patch command fails.
In scripted and unattended environments it may be desired to try to apply at least as many
patches as possible so the system is not left completely without updates. It is highly
recommended to run zypperpatch-check afterwards in order to see whether needed patches are still
waiting to be resolved interactively.
--with-update
Additionally try to update all packages not covered by patches. This is basically the same as
running zypperupdate afterwards.
The option is ignored, if the patch command must update the update stack first, thus it can not
be combined with the --updatestack-only option.
--with-optional, --without-optional
Whether applicable optional patches should be treated as needed or be excluded. The default is to
exclude optional patches.
-b, --bugzilla#[,...]
Select applicable patches for a Bugzilla issue specified by number. Use list-patches--bugzilla
command to get a list of applicable patches for specific issues.
--cve#[,...]
Select applicable patches for a MITRE’s CVE issue specified by number. Use list-patches--cve
command to get a list of applicable patches for specific issues.
--dateYYYY-MM-DD[,...]
Select only patches patches issued up to, but not including, the specified date.
-g, --categorycategory[,...]
Select only patches with this category. Use list-patches--category command to get a list of
available patches with a specific category. See section PackageTypes for a list of commonly used
category values.
--severityseverity[,...]
Select only patches with this severity. Use list-patches--severity command to get a list of
available patches with a specific severity. See section PackageTypes for a list of commonly used
severity values.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
--skip-interactive
This will skip interactive patches, that is, those that need reboot, contain a message, or update
a package whose license needs to be confirmed.
--with-interactive
Avoid skipping of interactive patches when in non-interactive mode.
-l, --auto-agree-with-licenses
Automatically say yes to third party license confirmation prompt. By using this option, you
choose to agree with licenses of all third-party software this command will install. This option
is particularly useful for administrators installing the same set of packages on multiple
machines (by an automated process) and have the licenses confirmed before.
--auto-agree-with-product-licenses
Automatically accept product licenses only. This is used by tools like SUSEconnect, which ask for
confirmation before the product gets registered. So there’s no need to confirm the product
license again at install time.
--replacefiles
Install the packages even if they replace files from other, already installed, packages. Default
is to treat file conflicts as an error. --download-as-needed disables the fileconflict check
because access to all packages filelists is needed in advance in order to perform the check.
-D, --dry-run
Test the update, do not actually update. If used together with --download-only a meaningful file
conflict check can be performed (see section PackageFileConflicts).
--details
Show the detailed installation summary.
-y, --no-confirm
Don’t require user interaction. It’s recommended to use the --non-interactive global option
instead. Global options are passed before the command (zypper--non-interactiveCOMMAND...).
Unlike the no-confirm command option, the global option can be used together with any zypper
command.
Solver related options:
--debug-solver
Create solver test case for debugging. Use this option if you think the dependencies were not
solved correctly. When using this option no packages will be installed or removed. Instead a
solver test case is written to /var/log/zypper.solverTestCase. You can pack the directory and
attach it to your bug report.
--force-resolution
Force the solver to find a solution (evenanaggressiveone) rather than asking.
In order to perform the requested job the solver is allowed to violate any otherwise active
policy. This includes the allowance to remove packages but also not to respect even explicitly
set policies (by --no-allow-policy or in config files). Itisnotrecommendedtousethisoptioninunattendedenvironments.
The allowance to remove dependent packages is the default when removing packages (zypper remove).
-R, --no-force-resolution
Do not force the solver to find a solution. Instead, report dependency problems and prompt the
user to resolve them manually. This is the default except when removing packages (zypperremove).
--solver-focusMODE
Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update.
See section PackageDependencies for details.
--recommends
Install also recommended packages in addition to the required ones. The default behavior is
determined by [zypp.conf:solver.onlyRequires].
--no-recommends
Do not install recommended packages, but only required ones. The default behavior is determined
by [zypp.conf:solver.onlyRequires].
Expert Options:
Don’t use them unless you know you need them.
--allow-downgrade, --no-allow-downgrade
Whether to allow downgrading installed resolvables.
--allow-name-change, --no-allow-name-change
Whether to allow changing the names of installed resolvables. Setting this to no will not replace
packages which have been renamed.
--allow-arch-change, --no-allow-arch-change
Whether to allow changing the architecture of installed resolvables.
--allow-vendor-change, --no-allow-vendor-change
Whether to allow changing the vendor of installed resolvables. Setting this to no might be useful
if you do not want packages from foreign repos being changed to the distributions version (or
vice versa).
This command also accepts the Download-and-installmodeoptions described in the install command
description.
dist-upgrade (dup) [options]
Perform a distribution upgrade. This command applies the state of (specified) repositories onto the
system; upgrades (or even downgrades) installed packages to versions found in repositories, removes
packages that are no longer in the repositories and pose a dependency problem for the upgrade,
handles package splits and renames, etc.
If no repositories are specified via the --from option, zypper will do a global upgrade with all
defined repositories. This global form of dup will also consider unchanged installed packages and
re-evaluate their dependencies. This can be a problem if the system contains conflicting
repositories, like repositories for two different distribution releases. This often happens if one
forgets to remove an older release repository after adding a new one, say openSUSE 13.1 and openSUSE
13.2.
For all repositories which have the distribution version within their URL (like
https://download.opensuse.org/distribution/13.1/repo/oss) using the $releasever variable instead may
be helpful (https://download.opensuse.org/distribution/$releasever/repo/oss). The variable is per
default substituted by the current distributions version (13.1).
This value can be temporarily overwritten in the current zypper command by using the --releasever
global option. Calling zypper--releasever13.2... will cause these repos to use the new location
(https://download.opensuse.org/distribution/13.2/repo/oss) without the need to add/remove anything.
But you’ll need to use --releasever13.2 with every zypper command until the distribution upgrade was
actually performed. Once the dup is done, $releasever will default to the new distribution version
13.2 and --releasever is no longer needed.
It might be less tedious to persistently set $releasever to the target distribution value, so
--releasever is not needed at all. See section RepositoryManagement for more info about variable
substitution and the definition of custom variables.
Note: Performing a distribution upgrade will automatically create a solver test case at
/var/log/updateTestcase-YYYY-MM-DD-hh-mm-ss (the date and time the command was executed).
Note: distribution upgrades in openSUSE are currently only supported between consecutive releases. To
upgrade multiple releases, upgrade each consecutive release one at a time. For more details see
http://en.opensuse.org/SDB:System_upgrade and the openSUSEreleasenotes at
http://doc.opensuse.org/release-notes/.
Note: Due to the treatment of orphaned packages dist-upgrade depends on a proper repository setup
more than any other command. It must not continue if enabled repositories fail to refresh. This may
severely damage the system. If a failing repository is actually not needed, it must be disabled.
--fromalias|name|#|URI
The option can be used multiple times and restricts the upgrade to the specified repositories only.
Nevertheless all enabled repositories are visible to the resolver and will be considered to satisfy
dependency problems.
--remove-orphaned
Remove orphaned packages. Installed packages which are not provided by at least one of the available
repositories are considered to be orphaned or dropped. dist-upgrade removes orphaned packages if they
prevent the upgrade of wanted packages. With this option all unneeded orphaned packages are removed.
'Note:' Packages which are not shipped within a repository - manually built or downloaded ones -, can be collected in a plaindir repository to prevent them from being treated as orphaned. See section *System Packages* for details.
-r, --repo alias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI.
Using --repo is discouraged as it currently hides unmentioned repositories from the resolver, leading
to inexpertly decisions. This is because packages originally installed from the hidden repos will now
be treated as orphaned or dropped. They can be silently removed if involved in a dependency conflict.
In the future --repo will become an alias for --from.
-l, --auto-agree-with-licenses
Automatically say yes to third party license confirmation prompt. By using this option, you choose to
agree with licenses of all third-party software this command will install. This option is
particularly useful for administrators installing the same set of packages on multiple machines (by
an automated process) and have the licenses confirmed before.
--auto-agree-with-product-licenses
Automatically accept product licenses only. This is used by tools like SUSEconnect, which ask for
confirmation before the product gets registered. So there’s no need to confirm the product license
again at install time.
--replacefiles
Install the packages even if they replace files from other, already installed, packages. Default is
to treat file conflicts as an error. --download-as-needed disables the fileconflict check because
access to all packages filelists is needed in advance in order to perform the check.
-D, --dry-run
Test the upgrade, do not actually install or update any package. If used together with
--download-only a meaningful file conflict check can be performed (see section PackageFileConflicts).
-y, --no-confirm
Don’t require user interaction. It’s recommended to use the --non-interactive global option instead.
Global options are passed before the command (zypper--non-interactiveCOMMAND...). Unlike the
no-confirm command option, the global option can be used together with any zypper command.
--details
Show the detailed installation summary.
Solver related options:
--debug-solver
Create solver test case for debugging. Use this option if you think the dependencies were not solved
correctly. When using this option no packages will be installed or removed. Instead a solver test
case is written to /var/log/zypper.solverTestCase. You can pack the directory and attach it to your
bug report.
--force-resolution
Force the solver to find a solution (evenanaggressiveone) rather than asking.
In order to perform the requested job the solver is allowed to violate any otherwise active policy.
This includes the allowance to remove packages but also not to respect even explicitly set policies
(by --no-allow-policy or in config files). Itisnotrecommendedtousethisoptioninunattendedenvironments.
The allowance to remove dependent packages is the default when removing packages (zypper remove).
-R, --no-force-resolution
Do not force the solver to find a solution. Instead, report dependency problems and prompt the user
to resolve them manually. This is the default except when removing packages (zypperremove).
--solver-focusMODE
Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update. See
section PackageDependencies for details.
--recommends
Install also recommended packages in addition to the required ones. The default behavior is
determined by [zypp.conf:solver.onlyRequires].
--no-recommends
Do not install recommended packages, but only required ones. The default behavior is determined by
[zypp.conf:solver.onlyRequires].
Expert Options:
Don’t use them unless you know you need them.
--allow-downgrade, --no-allow-downgrade
Whether to allow downgrading installed resolvables.
--allow-name-change, --no-allow-name-change
Whether to allow changing the names of installed resolvables. Setting this to no will not replace
packages which have been renamed.
--allow-arch-change, --no-allow-arch-change
Whether to allow changing the architecture of installed resolvables.
--allow-vendor-change, --no-allow-vendor-change
Whether to allow changing the vendor of installed resolvables. Setting this to no might be useful if
you do not want packages from foreign repos being changed to the distributions version (or vice
versa).
This command also accepts the Download-and-installmodeoptions described in the install command
description.
Examples:
$ zypperdup--fromfactory--frompackman
Upgrade the system to the latest versions provided by the factory and packman repositories.
QueryCommandssearch (se) [options] [querystring|capability]...
Search for packages matching any of the given search strings. * and ?wildcard characters can be used
within search strings. If the search string is enclosed in / (e.g. /^k.*e$/) it’s interpreted as a
regularexpression. See the install command for details about how to specify a capability.
If the search string starts with a /, a filename is assumed and the search will automatically look
into the file list of packages. Otherwise use -f to search in the packages file lists as well.
Results of the search are printed in a table with columns Status, Name, Summary and Type of package.
In case the query result is empty zypper returns ZYPPER_EXIT_INF_CAP_NOT_FOUND, unless the
--ignore-unknown global option is set.
In the detailed view (se-s) all available instances of matching packages are shown; each version in
each repository on a separate line, with columns Status, Name, Type, Version, Architecture and
Repository. For installed packages Repository shows either a repository that provides exactly the
installed version of the package, or, if the exact version is not provided by any known repo, (SystemPackages) (or @System). Those installed packages not provided by any repo are often denoted as being
unwanted, orphaned or dropped.
The Status column can contain the following values:
i+
installed by user request
i
installed automatically (by the resolver, see section Automaticallyinstalledpackages)
v
a different version is installed
empty
neither of the above cases
!
a patch in needed state
.l
is shown in the 2nd column if the item is locked (see section PackageLocksManagement)
.P
is shown in the 2nd column if the item is part of a PTF (A program temporary fix which must
be explicitly selected and will otherwise not be considered in dependency resolution).
.R
is shown in the 2nd column if the item has been retracted (see patch in section PackageTypes)
The v status is only shown if the version or the repository matters (see --details or --repo), and
the installed instance differs from the one listed in version or repository.
The verbose view (se-v; implies -s) will also show the matches themselves within the packages
metadata.
This command accepts the following options:
--match-substrings
Matches for search strings may be partial words (default).
--match-words
Matches for search strings may only be whole words.
-x, --match-exact
Searches for an exact name of the package.
--provides
Search for packages which provide the search strings.
--requires
Search for packages which require the search strings.
--recommends
Search for packages which recommend the search strings.
--suggests
Search for packages which suggest the search strings.
--conflicts
Search for packages conflicting with the search strings.
--obsoletes
Search for packages which obsolete the search strings.
--supplements
Search for packages which supplement the search strings.
--enhances
Search for packages which enhances the search strings.
--provides-pkg
Search for all packages that provide any of the provides of the package(s) matched by the input
parameters.
--requires-pkg
Search for all packages that require any of the provides of the package(s) matched by the input
parameters.
--recommends-pkg
Search for all packages that recommend any of the provides of the package(s) matched by the input
parameters.
--supplements-pkg
Search for all packages that supplement any of the provides of the package(s) matched by the
input parameters.
--conflicts-pkg
Search for all packages that conflict with any of the package(s) matched by the input parameters.
--obsoletes-pkg
Search for all packages that obsolete any of the package(s) matched by the input parameters.
--suggests-pkg
Search for all packages that suggest any of the provides of the package(s) matched by the input
parameters.
--enhances-pkg
Search for all packages that enhance any of the provides of the package(s) matched by the input
parameters.
-n, --name
Useful together with dependency options, otherwise searching in package name is default.
-f, --file-list
Search in the file list of packages. Note that the full file list is available for installed
packages only. For remote packages only an abstract of their file list is available within the
metadata (files containing /etc/, /bin/, or /sbin/).
-d, --search-descriptions
Search also in summaries and descriptions.
-C, --case-sensitive
Perform case-sensitive search.
-i, --installed-only
Show only installed packages.
-u, --not-installed-only
Show only packages which are not installed.
The old option name --uninstalled-only is still acceptable, but should be considered deprecated.
-t, --typetype
Search only for packages of specified type. See section PackageTypes for a list of available
package types. Multiple --type options are allowed.
See also the type-specific query commands like packages, patterns, etc.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number, or URI. This option can be
used multiple times.
--sort-by-name
Sort packages by name (default).
--sort-by-repo
Sort packages by repository, not by name.
-s, --details
Show all available versions of matching packages, each version in each repository on a separate
line.
-v, --verbose
Like --details with additional information where the search has matched (useful when searching
for dependencies, e.g. --provides).
Examples:
$ zypperse'yast*'
Search for YaST packages (quote the string to prevent the shell from expanding the wildcard).
$ zypperse-s--match-exactkernel-default
Show all available versions of package kernel-default
$ zypperse-dC--match-wordsRSI
Look for RSI acronym (case-sensitively), also in summaries and descriptions.
packages (pa) [options] [repository]...
List all available packages or all packages from specified repositories. Similar to zyppersearch-s-tpackage.
-r, --repoalias|name|#|URI
Just another means to specify repositories.
-i, --installed-only
Show only installed packages.
-u, --not-installed-only
Show only packages which are not installed.
The old option name --uninstalled-only is still acceptable, but should be considered deprecated.
*--autoinstalled
Show installed packages which were automatically selected by the resolver.
--userinstalled
Show installed packages which were explicitly selected by the user.
--system
Show installed packages which are not provided by any repository.
--orphaned
Show system packages which are orphaned (without repository and without update candidate). If
combined with --system, the status of orphaned packages is tagged with (o).
--suggested
Show packages which are suggested.
--recommended
Show packages which are recommended.
--unneeded
Show packages which are unneeded.
patches (pch) [options] [repository]...
List all available patches from specified repositories, including those not needed. Short for zypperlp-a.
-r, --repoalias|name_|#|URI
Just another means to specify repositories.
patterns (pt) [options] [repository]...
List all available patterns or all patterns from specified repositories. Similar to zyppersearch-s-tpattern.
-r, --repoalias|name|#|URI
Just another means to specify repositories.
-i, --installed-only
Show only installed patterns.
-u, --not-installed-only
Show only patterns which are not installed.
The old option name --uninstalled-only is still acceptable, but should be considered deprecated.
products (pd) [options] [repository]...
List all available products or all products from specified repositories. Similar to zyppersearch-s-tproduct, but shows also the type of the product (base, add-on).
-r, --repoalias|name|#|URI
Just another means to specify repositories.
-i, --installed-only
Show only installed products.
-u, --not-installed-only
Show only products which are not installed.
The old option name --uninstalled-only is still acceptable, but should be considered deprecated.
--xmlfwdtag
XML output only: Literally forward the XML tag, if it is found in an installed products
.prod-file (in /etc/products.d).
Using this option, for each installed product an <xmlfwd> node will be created inside the
<product> output node of the product.
Tag defines the name (or /-separated path) of a xml-tag inside an installed products .prod-file.
If the tag is present inside the products .prod-file, the tag and it’s content is literally
forwarded into the products <xmlfwd> output node.
The option may be specified multiple times.
Examples:
$ zypper-xpd--xmlfwdname--xmlfwdregister/targetwhat-provides (wp) capability
List all packages providing the specified capability (case-insensitive search). See also the install
command for info about specifying capabilities.
The command line is automatically transformed into the corresponding search command:
$ zypperwhat-provides'zypper>1.6'
$ zyppersearch--provides--match-exact'zypper>1.6'
For a case-sensitive search call
$ zyppersearch--provides--match-exact--case-sensitive'zypper>1.6'RepositoryManagement
Zypper is able to work with YaST, RPM-MD (yum) software repositories, and plain directories containing
.rpm files (no symlinks).
Repositories are primarily identified using their URI or alias. Alias serves as a shorthand for the long
URI or name of the repository. The name of the repository should briefly describe the repository and is
shown to the user in tables and messages. The name is not required, and if not known, the alias is shown
instead. The alias is required and uniquely identifies the repository on the system.
The alias, name, URI, or the number from zypperrepos list can be used to specify a repository as an
argument of various zypper commands and options like refresh, --repo, or --from.
Apart from the above, repositories have several other properties which can be set using the commands
described in this section below, or by manually editing the repository definition files (.repo files, see
section FILES).
Variablesubstitution:
You can use the following variables within a .repo or .service files name and URI values:
$arch
Use this variable to refer to the system’s CPU architecture.
$basearch
Use this variable to refer to the base architecture of the system. For example, iX86 machines have a
base architecture of i386, while AMD64 and Intel64 have x86_64.
$releasever, $releasever_major, $releasever_minor
Use this variable to refer to the version of your openSUSE or SUSE Linux. The value is obtained from
the /product/version XML-node in /etc/products.d/baseproduct.
This is useful for related repositories like packman
(http://ftp.gwdg.de/pub/linux/packman/suse/$releasever), which shall always fit the installed
distribution, even after a distribution upgrade.
To help performing a distribution upgrade, the value of $releasever can be persistently set to a user
defined value by creating a custom variable with that name (see below). This way you can easily
switch all repositories using $releasever to the new version (provided the server layouts did not
change and new repos are already available).
For a single zypper command the value of $releasever can be temporarily overwritten by using the
--releasever global option.
In addition $releasever_major will be set to the leading portion up to (but not including) the 1st
dot; $releasever_minor to the trailing portion after the 1st dot. If there’s no dot in $releasever,
$releasever_major is the same as $releasever and $releasever_minor is empty.
CustomVariables
A custom repository variable is defined by creating a file in /etc/zypp/vars.d. The variable name
equals the file name. The files first line (up to but not including the newline character) defines
the variables value. Valid variable(file) names consist of alphanumeric chars and underscore only.
This is how you can set a custom variable, e.g. $releasever to a value of 99.0:
echo"99.0">/etc/zypp/vars.d/releasever
To remove the custom variable, simply delete its file in /etc/zypp/vars.d:
rm/etc/zypp/vars.d/releasever
To check where you already use $releasever call:
zypper--releasever@--HERE--@lr-u
Remember to protect the $ when using these variables on a shell command line:
zypper ar -f http://ftp.gwdg.de/pub/linux/packman/suse/\$releasever packman
If a variable is followed by an alphanumeric character or underscore it needs to be enclosed in {}:
zypper ar -f http://ftp.gwdg.de/pub/linux/packman/suse/\${releasever}_packman
Bash style definition of default ${variable:-word} and alternate ${variable:+word} values:
SLE-${releasever_major}${releasever_minor:+-SP-$releasever_minor}
NOTE:
Variable substitution within an URIs authority is limited to host and port. Bash style definition of
default and alternate values is not supported. No variables can be used in an URIs scheme, user and
password.
SupportedURIformats:scheme:@]host[:port]]/path[?query][#fragment]
Special characters occurring in URI components (like a '@' in a password) must be %-encoded ('%40').
CD or DVD drive
Optionally with devices list for probing.
• cd:///dvd:/subdir?devices=/dev/sr0,/dev/sr1
FTP/HTTP/HTTPS directory tree
The ftp URL scheme supports absolute and relative paths to the default ftp server directory (RFC1738,
Section 3.2.2). To use an absolute path, you have to prepend the path with an additional slash, what
results in a /%2f combination (second / encoded to %2f) at the begin of the URL path. This is
important, especially in user authenticated ftp, where the users home is usually the default
directory of the server (except when the server chroots into the users home directory).
Explicit proxy settings may be passed via optional parameters proxy, proxyport, proxyuser and
proxypass.
HTTP authentication methods to use can be defined as comma separated list via optional parameter
auth. Valid methods are e.g. basic, digest, ntlm, negotiate. Note, that this list depends on the list
of methods supported by the curl library.
SSL verification behavior can be changed using the ssl_verify option (this should be used with care).
Valid values are yes (the secure default), host, peer or no. Host just checks that the "Common Name"
field or a "Subject Alternate Name" field in the servers certificate matches the host name in the
URL. Peer just verifies whether the certificate provided by the server is authentic against the chain
of digital signatures found in ssl_capath. No performs no checks at all. Yes is the secure default,
performing host and peer check.
For SSL client certificate authentication use the options ssl_clientcert to define the path to the
ssl client certificate and ssl_clientkey to define the path to the SSL client key. Use ssl_capath to
change the directory holding the CA certificates (default is /etc/ssl/certs).
• ftp://user:pass@server/path/to/media/dirftp://user:pass@server/%2fhome/user/path/to/media/dirhttp://user:pass@server/pathhttps://user:pass@server/path?proxy=foo&proxyuser=me&proxypass=pwhttps://server/path?ssl_clientcert=/entitlement/1234.pem&ssl_clientkey=/entitlement/1234-key.pem
Disk volume (partition)
Mandatory device parameter specifying the name of the block device to mount. The name of the optional
filesystem defaults to "auto".
• hd:/subdir?device=/dev/sda1&filesystem=reiserfs
Local directory tree
• dir:/directory/name
Media in an ISO image (loopback mounted)
Mandatory iso parameter specifying the name of the iso file. Optional url parameter specifying the
URL to the directory containing the iso file. Optional mnt parameter specifying the preferred attach
point for the source media url. Optional filesystem name of the filesystem used in the iso file.
Defaults to "auto".
• iso:/?iso=CD1.iso&url=nfs://server/path/to/mediaiso:/?iso=CD1.iso&url=hd:/?device=/dev/hdaiso:/subdir?iso=DVD1.iso&url=nfs://nfs-server/directory&mnt=/nfs/attach/point&filesystem=udf
NFS exported directory tree
To use NFSv4 either use schema tnfsv4:// or pass an optional parameter type=nfs4. Additional
mountoptions can be passed as comma separated list. Defaults to "ro".
• nfs://nfs-server/exported/pathnfs://nfs-server/exported/path?mountoptions=ro&type=nfs4nfs4://nfs-server/exported/path?mountoptions=ro
CIFS/SMB directory tree
There is no difference between cifs and smb scheme (any more). In both cases the cifs filesystem is
used. Additional mountoptions can be passed as comma separated list. Defaults to "ro,guest". Specify
"noguest" to turn off "guest". This is necessary if Samba is configured to reject guest connections.
Optional workgroup or domain parameter set the name of the workgroup. As alternative to passing
username:password in the URI authority the parameters user and pass can be used.
• smb://servername/share/path/on/the/sharecifs://usern:passw@servername/share/path/on/the/share?mountoptions=ro,noguestcifs://usern:passw@servername/share/path/on/the/share?workgroup=mygroupcifs://servername/share/path/on/the/share?user=usern&pass=passw
OpenSUSE Build Build Service (OBS) repositories
Zypper also accepts special URIs identifying openSUSE Build Service (OBS) repositories in the addrepo
command. These URIs have the form of obs://project/[platform], where project is the name of the OBS
project and platform is the target platform (OS) for which the repository is intended.
If platform is omitted, openSUSE_$releasever is used unless a value for obs.platform is defined in
zypper.conf. If you are following openSUSE_Factory or openSUSE_Tumbleweed you may need to set these
as your default platform. But we can only guess, how the directory containing the repository that
fits your distribution is named on the server. In case of doubt you need to look up the right URL in
a browser.
• obs://zypp:Head/obs://zypp:Head/openSUSE_Factoryobs://zypp:Head/openSUSE_Factory_Staging_Gcc49_standardCommands:addrepo (ar) [options] URIaliasaddrepo (ar) [options] FILE*.repo*
Add a new repository specified by URI and assign specified alias to it or specify URI to a .repo
file.
Newly added repositories have auto-refresh disabled by default (except for repositories imported from
a .repo, having the auto-refresh enabled). To enable auto-refresh use addrepo-f, or the --refresh
option of the modifyrepo command.
Also, this command does not automatically refresh the newly added repositories. The repositories will
get refreshed when used for the first time, or you can use the refresh command after finishing your
modifications with *repo commands.
-r, --repofile.repo
Read URI and alias from specified .repo file
-c, --check
Probe given URI.
-C, --no-check
Don’t probe URI, probe later during refresh.
-n, --namename
Specify descriptive name for the repository.
-e, --enable
Enable the repository (the default).
-d, --disable
Add the repository as disabled. Repositories are added as enabled by default.
-f, --refresh
Enable autorefresh of the repository. The autorefresh is disabled by default when adding new
repositories.
-F, --no-refresh
Disable auto-refresh for the repository.
-p, --priority[1-2147483647]|0
Set the priority of the repository. Priority of 1 is the highest, and 2147483647 is the lowest.
-p0 will set the priority back to the default (99). Packages from repositories with higher
priority will be used even if there are better versions available in a repository with a lower
priority.
-k, --keep-packages
Enable RPM files caching for the repository.
-K, --no-keep-packages
Disable RPM files caching.
-g, --gpgcheck
Enable GPG check for this repository. The behavior as described in section GPGchecks.
--gpgcheck-strict
Enable strict GPG check for this repository. Even packages from signed repositories need a valid
GPG signature and using unsigned packages must be confirmed.
--gpgcheck-allow-unsigned
Short hand for --gpgcheck-allow-unsigned-repo--gpgcheck-allow-unsigned-package--gpgcheck-allow-unsigned-repo
Enable GPG check but allow the repository metadata to be unsigned.
--gpgcheck-allow-unsigned-package
Enable GPG check but allow installing unsigned packages from this repository.
-G, --no-gpgcheck
Disable GPG check for this repository.
DisablingGPGchecksisnotrecommended. Signing data enables the recipient to verify that no
modifications occurred after the data were signed. Accepting data with no, wrong or unknown
signature can lead to a corrupted system and in extreme cases even to a system compromise.
--default-gpgcheck
Use the global GPG check settings defined in /etc/zypp/zypp.conf. This is the default.
Unless you have modified your zypp.conf settings, this is the same as --gpgcheck, the behavior as
described in section GPGchecks.
Examples:
$ zypperar-c-n'Packman11.1repo'http://packman.iu-bremen.de/suse/11.1packman
Add a HTTP repository, probe it, name it Packman11.1repo, and use packman as alias.
$ zypperarhttps://download.opensuse.org/repositories/zypp:/svn/openSUSE_Factory/zypp:svn.repo
$ zypperarmyreposbackup.repo
Add repositories from a .repo file.
removerepo (rr) [options] alias|name|#|URI...
Delete repositories specified by aliases, names, numbers, URIs or one of the aggregate options.
--loose-auth
Ignore user authentication data in the URI
--loose-query
Ignore query string in the URI
-a, --all
Apply changes to all repositories.
-l, --local
Apply changes to all local repositories.
-t, --remote
Apply changes to all remote repositories (http/https/ftp).
-m, --medium-typetype
Apply changes to repositories of specified type. The type corresponds to the repository URI
scheme identifier like http, dvd, etc. You can find complete list of valid types at
http://en.opensuse.org/openSUSE:Libzypp_URIs.
repos (lr) [options] [repo]...
List all defined repositories or show detailed information about those specified as arguments
The following data can be printed for each repository found on the system: # (repository number),
Alias (unique identifier), Name, Enabled (whether the repository is enabled), GPGCheck (whether GPG
check for repository metadata (r) and/or downloaded rpm packages (p) is enabled), Refresh (whether
auto-refresh is enabled for the repository), Priority, Type (repository meta-data type: rpm-md,
yast2, plaindir). Which of the data is shown is determined by command line options listed below and
the main.repoListColumns setting from zypper.conf. By default, #, Alias, Name, Enabled, GPG Check and
Refresh is shown.
Repository number is a unique identifier of the repository in current set of repositories. If you
add, remove or change a repository, the numbers may change. Keep that in mind when using the numbers
with the repository handling commands. On the other hand, using the alias instead of the number is
always safe.
To show detailed information about specific repositories, specify them as arguments, either by alias,
name, number from simple zypperlr, or by URI; e.g. fB zypperlrfactory, or zypperlr2.
-e, --exportFILE.repo|-
This option causes zypper to write repository definition of all defined repositories into a
single file in repo file format. If - is specified instead of a file name, the repositories will
be written to the standard output.
-a, --alias
Add alias column to the output.
-n, --name
Add name column to the output.
-u, --uri
Add base URI column to the output.
-p, --priority
Add repository priority column to the output.
-r, --refresh
Add the autorefresh column to the output.
-k, --keep-packages
Add the keep-packages column to the output. The column will show a Yes if keep-packages is
explicitly enabled for this repository. Otherwise a - or a + if a .keep_packages file in the
pkg-cache directory exists. (see section FILES)
-d, --details
Show more information like URI, priority, type, etc.
-E, --show-enabled-only
Show enabled repositories only.
-U, --sort-by-uri
Add base URI column and sort the list it.
-P, --sort-by-priority
Add repository priority column and sort the list by it.
-A, --sort-by-alias
Sort the list by alias.
-N, --sort-by-name
Sort the list by name.
Examples:
$ zypperrepos-emyreposbackup.repo
Backup your repository setup:
$ zypperlr-pu
List repositories with their URIs and priorities:
renamerepo (nr) alias|name|#|URInew-alias
Assign new alias to the repository specified by alias, name, number, or URI.
Examples:
$ zyppernr8myrepo
Rename repository number8 to myrepo (useful if the repo has some dreadful alias which is not
usable on the command line).
modifyrepo (mr) optionsalias|name|#|URI...
modifyrepo (mr) options--all|--remote|--local|--medium-type
Modify properties of repositories specified by alias, name, number, or URI or one of the aggregate
options.
-n, --namename
Set a descriptive name for the repository.
-e, --enable
Enable the repository.
-d, --disable
Disable the repository.
-f, --refresh (legacy: -r)
Enable auto-refresh for the repository.
-F, --no-refresh (legacy: -R)
Disable auto-refresh for the repository.
-p, --priority[1-2147483647]|0
Set the priority of the repository. Priority of 1 is the highest, and 2147483647 is the lowest.
-p0 will set the priority back to the default (99). Packages from repositories with higher
priority will be used even if there are better versions available in a repository with a lower
priority.
-k, --keep-packages
Enable RPM files caching.
-K, --no-keep-packages
Disable RPM files caching.
-g, --gpgcheck
Enable GPG check for this repository. The behavior as described in section GPGchecks.
--gpgcheck-strict
Enable strict GPG check for this repository. Even packages from signed repositories need a valid
GPG signature and using unsigned packages must be confirmed.
--gpgcheck-allow-unsigned
Short hand for --gpgcheck-allow-unsigned-repo--gpgcheck-allow-unsigned-package--gpgcheck-allow-unsigned-repo
Enable GPG check but allow the repository metadata to be unsigned.
--gpgcheck-allow-unsigned-package
Enable GPG check but allow installing unsigned packages from this repository.
-G, --no-gpgcheck
Disable GPG check for this repository.
DisablingGPGchecksisnotrecommended. Signing data enables the recipient to verify that no
modifications occurred after the data were signed. Accepting data with no, wrong or unknown
signature can lead to a corrupted system and in extreme cases even to a system compromise.
--default-gpgcheck
Use the global GPG check settings defined in /etc/zypp/zypp.conf. This is the default.
Unless you have modified your zypp.conf settings, this is the same as --gpgcheck, the behavior as
described in section GPGchecks.
-a, --all
Apply changes to all repositories.
-l, --local
Apply changes to all local repositories.
-t, --remote
Apply changes to all remote repositories (http/https/ftp).
-m, --medium-typetype
Apply changes to repositories of specified type. The type corresponds to the repository URI
scheme identifier like http, dvd, etc. You can find complete list of valid types at
http://en.opensuse.org/openSUSE:Libzypp_URIs.
Examples:
$ zyppermr-kt
Enable keeping of packages for all remote repositories.
$ zyppermr-erupdates
Enable repository updates and switch on autorefresh for the repo.
$ zyppermr-da
Disable all repositories.
refresh (ref) [alias|name|#|URI]...
Refresh repositories specified by their alias, name, number, or URI. If no repositories are
specified, all enabled repositories will be refreshed.
-f, --force
Force a complete refresh of specified repositories. This option will cause both the download of
raw metadata and parsing of the metadata to be forced even if everything indicates a refresh is
not needed.
-b, --force-build
Force only reparsing of cached metadata and rebuilding of the database. Raw metadata download
will not be forced.
-d, --force-download
Force only download of current copy of repository metadata. Parsing and rebuild of the database
will not be forced.
-B, --build-only
Only parse the metadata and build the database, don’t download raw metadata into the cache. This
will enable you to repair damaged database from cached data without accessing network at all.
-D, --download-only
Only download the raw metadata, don’t parse it or build the database.
--include-all-archs
Multi-Arch repos: Download raw metadata for all offered architectures even if the repo supports
filtering. Otherwise we’d download only the metadata for architectures compatible with the local
system. You do not need this unless you want zypper to provide the full metadata for the purpose
of mirroring the repository.
-s, --services
Refresh also services before refreshing repositories.
clean (cc) [options] [alias|name|#|URI]...
Clean the local caches for all known or specified repositories. By default, only caches of downloaded
packages are cleaned.
-m, --metadata
Clean repository metadata cache instead of package cache.
-M, --raw-metadata
Clean repository raw metadata cache instead of package cache.
-a, --all
Clean both repository metadata and package caches.
ServiceManagement
The services, addservice, removeservice, modifyservice, and refresh-services commands serve for
manipulating services. A service is specified by its URI and needs to have a unique alias defined (among
both services and repositories).
Standalone repositories (not belonging to any service) are treated like services, too. The ls command
will list them, ms command will modify them, etc. Repository specific options, like --keep-packages are
not available here, though. You can use repository handling commands to manipulate them.
addservice (as) [options] URIalias
Adds a service specified by URI to the system. The alias must be unique and serves to identify the
service. If a service with the samealiasandURI already exists, the command behaves like
modifyservice and updates the settings accordingly.
Newly added services are not refreshed automatically. Use the refresh-services command to refresh
them. Zypper does not access the service URI when adding the service, so the type of the services is
unknown until it is refreshed.
-n, --namename
Specify descriptive name for the service.
-e, --enable
Enable the service (this is the default).
-d, --disable
Add the service as disabled.
-f, --refresh
Enable auto-refresh of the service.
-F, --no-refresh
Disable auto-refresh of the service.
removeservice (rs) [options] alias|name|#|URI...
Remove specified service from the system. Removing a service will also remove of all of its
repositories.
--loose-auth
Ignore user authentication data in the URI.
--loose-query
Ignore query string in the URI.
modifyservice (ms) optionsalias|name|#|URImodifyservice (ms) options--all|--remote|--local|--medium-type
Modify properties of specified services.
Common Options
These options are common to all types of services and repositories.
-n, --namename
Set a descriptive name for the service.
-e, --enable
Enable a disabled service.
-d, --disable
Disable the service (but don’t remove it).
-f, --refresh (legacy: -r)
Enable auto-refresh of the service.
-F, --no-refresh (legacy: -R)
Disable auto-refresh of the service.
-a, --all
Apply changes to all services.
-l, --local
Apply changes to all local services.
-t, --remote
Apply changes to all remote services.
-m, --medium-typetype
Apply changes to services of specified type.
RIS Service Specific Options
These options are ignored by services other than Repository Index Services.
-i, --ar-to-enablealias
Schedule an RIS service repository to be enabled at next service refresh.
-I, --ar-to-disablealias
Schedule an RIS service repository to be disabled at next service refresh.
-j, --rr-to-enablealias
Remove a RIS service repository to enable.
-J, --rr-to-disablealias
Remove a RIS service repository to disable.
-k, --cl-to-enable
Clear the list of RIS repositories to enable.
-K, --cl-to-disable
Clear the list of RIS repositories to disable.
services (ls) [options]
List services defined on the system.
-u, --uri
Show also base URI of repositories.
-p, --priority
Show also repository priority.
-d, --details
Show more information like URI, priority, type.
-r, --with-repos
Show also repositories belonging to the services.
-P, --sort-by-priority
Sort the list by repository priority.
-E, --show-enabled-only
Show enabled services only. If used together with --with-repos a disabled services owning
(manually) enabled repositories are shown as well.
-U, --sort-by-uri
Sort the list by URI.
-N, --sort-by-name
Sort the list by name.
refresh-services (refs) [options] alias|name|#|URI...
Refreshing a service means executing the service’s special task.
RIS services add, remove, or modify repositories on your system based on current content of the
repository index. A differing enabled/disabled state caused by manually calling modify-repo on a
service repository however will not be reverted unless the --restore-status option is used, or the
repository index explicitly requests the change.
Services only manage defined repositories, they do not refresh them. To refresh also repositories,
use --with-repos option or the refresh command.
-f, --force
Force a complete refresh of specified services. This option will cause both the download of raw
metadata and parsing of the metadata to be forced even if everything indicates a refresh is not
needed.
-r, --with-repos
Refresh also the service repositories.
-R, --restore-status
Also restore service repositories enabled/disabled state to the repository index default. Useful
after you manually changed some service repositories enabled state.
PackageLocksManagement
Package locks serve the purpose of preventing changes to the set of installed packages on the system.
Locks are stored as queries in /etc/zypp/locks file (see also locks(5)). Packages matching a query are
then forbidden to change their installed status; an installed package can’t be removed or upgraded, not
installed package can’t be installed. When requesting to install, upgrade or remove such locked package,
you will get a dependency problem dialog.
A lock-spec is formed by "NAME [OPEDITION]", where NAME may also be a glob pattern using * and ?
wildcard characters. Non-package types may to have their kind-string prepended (e.g. patch:foo or
product:baa) or use the commands --type option.
The basic form will lock all editions of the matching items. You can optionally restrict the lock to
match a specific edition or edition range using =, <, <=, >, >= or != followed by the edition.
Note
If you use blanks around the operator you need to quote the string or escape the blanks according to
the rules of the shell you are using.
locks (ll)
List currently active package locks.
-m, --matches
Show the number of resolvables matched by each lock. This option requires loading the
repositories.
-s, --solvables
List the resolvables matched by each lock. This option requires loading the repositories.
addlock (al) [options] lock-spec...
Add a package lock. Specify packages to lock as explained above.
-r, --repoalias|name|#|URI
Restrict the lock to the specified repository.
-t, --typetype
Lock only packages of specified type (default: package). See section PackageTypes for list of
available package types.
-m, --commentcomment
Add a comment for package lock.
removelock (rl) [options] lock-number|lock-spec...
Remove a package lock. Specify the lock to remove by its number obtained with zypperlocks or by the
lock-spec.
-r, --repoalias|name|#|URI
Restrict the lock to the specified repository.
-t, --typetype
Restrict the lock to packages of specified type (default: package). See section PackageTypes for
list of available package types.
cleanlocks (cl)
Remove unused locks.
This command looks for locks that do not currently (with regard to repositories used) lock any
package and for each such lock it asks user whether to remove it.
LocaleManagement
These commands give information about requested locales and the possibility to manage those. A locale is
defined by a language code. For many packages there are locale dependent packages available which provide
translations or dictionaries. To get these installed, the locale for the desired language must be marked
as requested by the package manager library.
locales (lloc) [OPTIONS] [LOCALE] ...
List requested locales. Called without argument, lists the locales which are already marked as
requested. Specifying certain locale(s) prints information only for this(these).
-a, --all
List all available locales.
-p, --packages
Show corresponding packages.
addlocale (aloc) [OPTIONS] <LOCALE> ...
Add specified locale(s) to the list of requested locales..
-n, --no-packages
Do not install corresponding packages.
removelocale (rloc) [OPTIONS] <LOCALE> ...
Remove specified locale(s) from the list of requested locales..
-n, --no-packages
Do not remove corresponding packages.
Examples:
$ zypperlocales
List requested locales.
$ zypperlocales--packagesdeen
Get the lists of packages which are available for de and en (exact match).
$ zypperlocalesen_
Get all locales with lang code en that have their own country code, excluding the fallback en.
$ zypperlocalesen*
Get all locales with lang code en with or without country code.
$ zypperaloc--packagesde_CH
Request de_CH and install language dependent packages.
OtherCommandssystem-architecture
Print the detected system architecture.
versioncmp (vcmp) VERSION1VERSION2
Compare the versions supplied as arguments and tell whether VERSION1 is older or newer than VERSION2
or the two version strings match. The exit code is 0 if the versions are equal, 11 if VERSION1 is
newer, and 12 if VERSION2 is newer.
The default output is in human-friendly form. If --terse global option is used, the result is an
integer number, negative/positive if VERSION1 is older/newer than VERSION2, zero if they match.
-m, --match
Takes missing release number as any release.
For example:
$ zyppervcmp-m0.15.30.15.3-2
0.15.3 matches 0.15.3-2
$ zyppervcmp0.15.30.15.3-2
0.15.3 isolderthan 0.15.3-2
targetos (tos)
Shows the ID string of the target operating system. The string is defined by the
XPath:/product/register/target entry in (current-rootdir)/etc/products.d/baseproduct.
If the baseproduct does not provide this entry, or if no baseproduct is installed at all, the value
is empty if the --terse global option is used.
In not-terse mode the distribution label is shown instead of an empty value, if a baseproduct is
installed.
-l, --label
Show the baseproducts distribution and short label instead.
licenses
Prints a report about licenses and EULA's of installed packages to standard output.
First, a list of all packages and their licenses and/or EULAs is shown. This is followed by a
summary, including the total number of installed packages, the number of installed packages with
EULAs that required a confirmation from the user. Since the EULAs are not stored on the system and
can only be read from repository metadata, the summary includes also the number of installed packages
that have their counterpart in repositories. The report ends with a list of all licenses uses by the
installed packages.
This command can be useful for companies redistributing a custom distribution (like appliances) to
figure out what licenses they are bound by.
download [OPTIONS]
Download rpms specified on the commandline to a local directory.
Per default packages are downloaded to the libzypp package cache (/var/cache/zypp/packages; for
non-root users $XDG_CACHE_HOME/zypp/packages), but this can be changed by using the global
--pkg-cache-dir option.
Parsable XML-output produced by zypper--xmlout will include a <download-result> node for each
package zypper tried to download. Upon success the location of the downloaded package is found in the
path attribute of the <localfile> subnode (xpath: download-result/localpath@path):
<download-result>
<solvable>
<kind>package</kind>
<name>zypper</name>
<edition epoch="0" version="1.9.17" release="26.1"/>
<arch>x86_64</arch>
<repository name="repo-oss-update (13.1)" alias="openSUSE:repo-oss-update"/>
</solvable>
<localfile path="/var/cache/zypp/pac.../zypper-1.9.17-26.1.x86_64.rpm"/>
</download-result>
--all-matches
Download all versions matching the commandline arguments. Otherwise only the best version of
each matching package is downloaded.
--dry-run
Don’t download any package, just report what would be done.
-r, --repoalias|name|#|URI
Work only with the repository specified by the alias, name, number or URI. This option can be
used multiple times.
--fromalias|name|#|URI
Select packages from the specified repository only. This option can be used multiple times.
source-download [OPTIONS]
Download source rpms for all installed packages to a local directory.
-d, --directorydir
Download all source rpms to this directory. Default is /var/cache/zypper/source-download.
--delete
Delete extraneous source rpms in the local directory. This is the default.
--no-delete
Do not delete extraneous source rpms.
--status
Don’t download any source rpms, but show which source rpms are missing or extraneous.
ps [OPTIONS]
After each upgrade or removal of packages, there may be running processes on the system which
continue to use meanwhile deleted files. zypperps lists all processes using deleted files, together
with the corresponding files, and a service name hint, in case it’s a known service. This gives a
hint which services may need to be restarted after an update. Usually programs which continue to use
deleted shared libraries. The list contains the following information:
PID
ID of the process
PPID
ID of the parent process
UID
ID of the user running the process
Login
Login name of the user running the process
Command
Command used to execute the process
Service
Service name, if command is associated with a system service
Files
The list of the deleted files
-s, --short
Create a short table not showing the deleted files. Given twice, show only processes which are
associated with a system service. Given three times, list the associated system service names
only.
--printformat
For each associated system service print format on the standard output, followed by a newline.
Any %s directive in format is replaced by the system service name.
-d, --debugFilefilename
Output a file with all proc entries that make it into the final set of used open files. This can
be submitted as additional information in a bug report.
Examples:
$ zypperps-ss
Show only processes associated with a system service.
$ zypperps-sss
Short for zypperps--print"%s"; list services which might need a restart.
$ zypperps--print"systemctlstatus%s"
Let zypper print the commands to retrieve status information for services which might need a
restart.
needs-rebooting
Checks if the reboot-needed flag was set by a previous update or install of a core library or
service.
The reboot-needed flag is set if a package that provides installhint(reboot-needed) is updated or
installed. Additionally there is a predefined list (/etc/zypp/needreboot) of well-known packages
which cause the reboot-needed flag being set unconditionally. The exit code
ZYPPER_EXIT_INF_REBOOT_NEEDED indicates that a reboot is suggested, otherwise the exit code is set to
ZYPPER_EXIT_OK.
It is recommended for scripts to use this command to test whether a system reboot is suggested. Use
--quiet to suppress the normal output.
Subcommandssubcommand
Lists available subcommands in /usr/lib/zypper/commands and from elsewhere on your $PATH. See section
SUBCOMMANDS for details.