neulab/tldr huggingface dataset:
Services Services are one level above repositories and serve to manage repositories or to do some special tasks. Libzypp currently supports Repository Index Service (RIS) and Plugin Service.
Repository Index Service (RIS) is a special type of repository which contains a list of other repositories. This list can be generated dynamically by the server according to some URI parameters or user name, or can be static. Once such service is added to your system, zypper takes care of adding, modifying, or removing these repositories on your system to reflect the current list. See section Service Management and https://en.opensuse.org/openSUSE:Standards_Repository_Index_Service for more details.
Package Types Zypper works with several types of resource objects, called resolvables. A resolvable might be a package, patch, pattern, product; basically any kind of object with dependencies to other objects.
package An ordinary RPM package.
patch A released patch conflicts with the affected/vulnerable versions of a collection of packages. As long as any of these affected/vulnerable versions are installed, the conflict triggers and the patch is classified as needed, or as unwanted if the patch is locked.
Selecting the patch, the conflict is resolved by updating all installed and affected/vulnerable packages to a version providing the fix. When updating the packages zypper always aims for the latest available version. Resolved patches are classified as either applied or not needed, depending on whether they refer to actually installed packages.
So installation, update or removal of packages may change the classification of patches referring to these packages. Since libyzpp-17.23.0 the /var/log/zypp/history remembers if a committed transaction changes a patchs classification. If history data are available, patch tables show a column telling since when the patch is in it’s current state.
Depending on the kind of defect, patches are classified by category and severity. Commonly used values for category are security, recommended, optional, feature, document or yast. Commonly used values for severity are critical, important, moderate, low or unspecified.
Note that the patch command does not apply optional patches (category optional or feature) by default. If you actually want to consider all optional patches as being needed, say patch --with-optional. Specific patches can be applied using the install command (e.g. zypper install patch:openSUSE-2014-7).
If the issuer decides to retract a released patch, the patch status will be shown as retracted. The packages provided by the retracted patch are still visible but also tagged as having been retracted (R). The resolver will avoid selecting retracted packages automatically. If you are sure that a retracted package should be installed on your system, you must explicitly select it.
pattern A group of packages required or recommended to install some functionality.
product A group of packages which are necessary to install a product.
srcpackage Source code package (.src.rpm). This type works in search and install commands.
application Legacy: Since libzypp-17.7.0 this type is no longer available.
Throughout this manual we will often refer to resolvables simply as packages and to resolvable types as package type or kind. These type names can be used as arguments of --type option in several commands like install, info, or search. Commands should also allow one to specify resolvables as KIND:NAME (e.g. patch:openSUSE-2014-7).
Package Dependencies Software packages depend on each other in various ways. Packages usually require or recommend other packages, but they can also conflict with them. Packages may support specific hardware or language settings. Zypper uses a dependency solver to find out which packages need to be installed to satisfy the user’s request.
If you do not request a specific version of a package the solver will pick a reasonable one. The solvers general attitude when resolving a job is to focus on installing the best version of the requested package and to add or update dependencies as they are needed. Aside from this Focus on Job, which is the default, two other focus modes are available:
In Focus on Installed mode the solver focuses on applying as little changes to the installed packages as needed. Choosing an older version of a requested package is valid if it’s dependencies require less changes to the system. The solver will try to avoid updating already installed packages.
In Focus on Update mode the solver focuses on updating the requested package and all its dependencies as much as possible. Beware, installing a single package in this mode may easily lead to a mini system update.
For a single command the focus mode can be set using the --solver-focus MODE switch. Valid modes are Job, Installed or Update. If you want to change the default mode for your system, set [/etc/zypp/zypp.conf:solver.focus] to the desired value.
Automatically installed packages Packages added by the dependency solver in order to resolve a user’s request are remembered as having been automatically installed. They may later be removed, if no more user installed packages depend on them (e.g. by zypper remove --clean-deps).
In the Status column the search command distinguishes between user installed packages (i+) and automatically installed packages (i).
Package File Conflicts File conflicts happen when two packages attempt to install files with the same name but different contents. This may happen if you are installing a newer version of a package without erasing the older version, of if two unrelated packages each install a file with the same name.
As checking for file conflicts requires access to the full filelist of each package being installed, zypper will be able to check for file conflicts only if all packages are downloaded in advance (see --download-in-advance). If you are doing a --dry-run no packages are downloaded, so the file conflict check will skip packages not available in the packages cache. To get a meaningful file conflict check use --dry-run together with --download-only.
As the reason for file conflicts usually is a poor package design or lack of coordination between the people building the packages, they are not easy to resolve. By using the --replacefiles option you can force zypper to replace the conflicting files. Nevertheless this may damage the package whose file gets replaced.
zypper provides a number of commands. Each command accepts the options listed in the GLOBAL OPTIONS 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.
General Commands help [command] Shows help texts. If invoked without any argument (just zypper or zypper help), 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, zypper help can also be invoked in any of the following ways:
$ zypper -h|--help [command]
$ zypper [command] -h|--help
shell (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.
Package Management Commands info (if) [options] name... Displays detailed information about the specified packages.
For each specified package, zypper finds the best available version in defined repositories and shows information for this package.
-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.
-t, --type type Type of package (default: package). See section Package Types 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.
$ zypper info workrave Show information about package workrave
$ zypper info -t patch libzypp Show information about patch libzypp
$ zypper info -t pattern lamp_server Show information about pattern lamp_server
install (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][ OP EDITION]", 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.
Zypper is also able to install plain RPM files 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.:
$ zypper install ~/rpms/foo.rpm http://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 zypper clean 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:
$ zypper install \!Firefox
In contrast to zypper remove Firefox 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:
$ zypper install --  -boring-game great-game great-game-manual
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.
-t, --type type Type of package to install (default: package). See section Package Types for list of available package types. Use zypper se -t type [name] to look for available items of this type and zypper info -t type name 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 zypper list-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.
--from alias|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 Package File Conflicts).
--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-interactive COMMAND ...). 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 by allowing to remove packages with unfulfilled requirements. This is the default when removing packages (zypper remove). This option overrides --no-force-resolution in case both are specified on the command line.
-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 (zypper remove).
--solver-focus MODE Set the solvers general attitude when resolving a job. Valid modes are Job, Installed or Update. See section Package Dependencies 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 Package File Conflicts).
--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. This is the default mode.
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.
--download mode 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).
$ zypper install -t pattern lamp_server Install lamp_server pattern.
$ zypper install --no-recommends gv Install GhostScript viewer, but ignore recommended packages.
$ zypper install virtualbox-ose-2.0.6
$ zypper install virtualbox-ose=2.0.6
$ zypper install virtualbox-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:
$ zypper search -t srcpackage -r alias|name|#|URI
-d, --build-deps-only Install only build dependencies of specified packages.
-D, --no-build-deps Don’t install build dependencies.
-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.
--download-only Only download the packages, do not install.
$ zypper si -d dbus-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 Package File Conflicts).
This command also accepts the Download-and-install mode options 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. You don’t want to call this unconditionally on small or minimal systems, as it may easily add a large number of packages.
Called as zypper inr --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].
-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 Package File Conflicts).
remove (rm) [options] name...
remove (rm) [options] --capability capability... 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 zypper install !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.
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).
-D, --dry-run Test the removal of packages, do not actually remove anything.
-u, --clean-deps Automatically remove dependencies which become unneeded after removal of requested packages.
-U, --no-clean-deps No automatic removal of unneeded dependencies.
purge-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].
Update Management Commands list-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.
If patch is specified, zypper acts as if the list-patches command was executed.
-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.
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 "The following package updates will NOT be installed:".
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.
If patch is specified, zypper acts as if the patches command was executed.
--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.
--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 Package File Conflicts).
--best-effort Do a best effort 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.
This command also accepts the Download-and-install mode options described in the install command description.
list-patches (lp) [options] List all applicable patches.
This command is similar to zypper list-updates -t patch.
Note that optional arguments 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.
--date YYYY-MM-DD[,...] List only patches issued up to, but not including, the specified date.
-g, --category category[,...] List only patches with this category. See section Package Types for a list of commonly used category values.
--severity severity[,...] List only patches with this severity. See section Package Types 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 zypper patch-info patchname 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.
patch-check (pchk) Check for patches. Displays a count of applicable patches and how many of them have the security category.
See also the EXIT CODES 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.
-r, --repo alias|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.
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 zypper update -t patch.
--updatestack-only Install only patches which affect the package management itself and exit.
--with-update Additionally try to update all packages not covered by patches. This is basically the same as running zypper update 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.
-b, --bugzilla #[,...] Install patch fixing a Bugzilla issue specified by number. Use list-patches --bugzilla command to get a list of applicable patches for specific issues.
--cve #[,...] Install patch fixing a MITRE’s CVE issue specified by number. Use list-patches --cve command to get a list of applicable patches for specific issues.
--date YYYY-MM-DD[,...] Install only patches issued up to, but not including, the specified date.
-g, --category category[,...] Install only patches with this category. Use list-patches --category command to get a list of available patches with a specific category. See section Package Types for a list of commonly used category values.
--severity severity[,...] Install only patches with this severity. Use list-patches --severity command to get a list of available patches with a specific severity. See section Package Types for a list of commonly used severity values.
-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 Package File Conflicts).
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 --releasever 13.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 --releasever 13.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 Repository Management 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 openSUSE release notes at http://doc.opensuse.org/release-notes/.
--from alias|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.
-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.
-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 Package File Conflicts).
$ zypper dup --from factory --from packman Upgrade the system to the latest versions provided by the factory and packman repositories.
Query Commands search (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 regular expression. See the install command for details about how to specify a capability.
Results of the search are printed in a table with columns Status, Name, Summary and Type of package.
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, (System Packages) (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 Automatically installed packages)
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 Package Locks Management)
.R is shown in the 2nd column if the item has been retracted (see patch in section Package Types)
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.
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.
--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.
-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, --type type Search only for packages of specified type. See section Package Types for a list of available package types. Multiple --type options are allowed.
See also the type-specific query commands like packages, patterns, etc.
--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).
$ zypper se 'yast*' Search for YaST packages (quote the string to prevent the shell from expanding the wildcard).
$ zypper se -s --match-exact kernel-default Show all available versions of package kernel-default
$ zypper se -dC --match-words RSI 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 zypper search -s -t package.
-r, --repo alias|name|#|URI Just another means to specify repositories.
--orphaned Show packages which are orphaned (without repository).
--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 zypper lp -a.
-r, --repo alias|name_|#|URI Just another means to specify repositories.
patterns (pt) [options] [repository]... List all available patterns or all patterns from specified repositories. Similar to zypper search -s -t pattern.
-i, --installed-only Show only installed patterns.
-u, --not-installed-only Show only patterns which are not installed.
products (pd) [options] [repository]... List all available products or all products from specified repositories. Similar to zypper search -s -t product, but shows also the type of the product (base, add-on).
-i, --installed-only Show only installed products.
-u, --not-installed-only Show only products which are not installed.
--xmlfwd tag 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.
$ zypper -x pd --xmlfwd name --xmlfwd register/target
what-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:
$ zypper what-provides 'zypper>1.6' $ zypper search --provides --match-exact 'zypper>1.6'
For a case-sensitive search call $ zypper search --provides --match-exact --case-sensitive 'zypper>1.6'
Repository Management 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 zypper repos 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).
Variable substitution: 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.
Custom Variables 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.
Supported URI formats: scheme:[//user[:password]@]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/dir ftp://user:pass@server/%2fhome/user/path/to/media/dir http://user:pass@server/path https://user:pass@server/path?proxy=foo&proxyuser=me&proxypass=pw https://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/media iso:/?iso=CD1.iso&url=hd:/?device=/dev/hda iso:/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/path nfs://nfs-server/exported/path?mountoptions=ro&type=nfs4 nfs4://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/share cifs://usern:passw@servername/share/path/on/the/share?mountoptions=ro,noguest cifs://usern:passw@servername/share/path/on/the/share?workgroup=mygroup cifs://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_Factory obs://zypp:Head/openSUSE_Factory_Staging_Gcc49_standard
Commands: addrepo (ar) [options] URI alias
addrepo (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, --repo file.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, --name name 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.