Cyberithub

50 Useful Zypper Command Examples to Manage Packages on OpenSUSE Linux

Table of Contents

Advertisements

In this article, I will guide you through 50 Useful Zypper Command Examples to Manage Packages on OpenSUSE Linux. You might have heard about yum utility for managing packages on RHEL/CentOS Based Servers and apt-get utility on Ubuntu/Debian Based Servers. Similarly we have zypper utility available for OpenSUSE/SUSE based Servers.

Zypper is a very useful command Line Interface(CLI) Package Manager in OpenSUSE Linux used for installing, removing, updating and managing packages. It is also used in SUSE Linux. By default you will see zypper command available in your Server hence you don't have to install it separately. Here we will look into all the possible usages of zypper command in detail with the help of examples.

50 Useful Zypper Command Examples to Manage Packages on OpenSUSE Linux

Zypper Command Examples to Manage Packages on OpenSUSE Linux

Also Read: How to Start and Enable SSHD Service in OpenSUSE Linux

Example 1: How to Check Zypper Version

If you want to check the zypper version then you need to use zypper -V command as shown below. As shown in the output, current version is 1.14.36.

localhost:~ # zypper -V
zypper 1.14.36

-V : print version of zypper command and exit. More on zypper command Man Page.

NOTE:

Please note that here I am using root user to run all the below commands. You can use any user with sudo access to run all these commands. For more information Please check Step by Step: How to Add User to Sudoers to provide sudo access to the User.

Example 2: How to Install a Package Using Zypper

To install a package in OpenSUSE Linux you need to use zypper in <package_name> or zypper install <package_name>. In this example I am installing gcc package using zypper in gcc command as shown below.

localhost:~ # zypper in gcc
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 13 NEW packages are going to be installed:
gcc gcc7 glibc-devel libasan4 libatomic1 libcilkrts5 libitm1 liblsan0 libmpx2 libmpxwrappers2 libtsan0 libubsan0 linux-glibc-devel

13 new packages to install.
Overall download size: 22.6 MiB. Already cached: 0 B. After the operation, additional 83.3 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package libasan4-7.5.0+r278197-lp152.2.46.x86_64 (1/13), 357.4 KiB ( 1.3 MiB unpacked)
Retrieving: libasan4-7.5.0+r278197-lp152.2.46.x86_64.rpm .............................................................................................[done (6.6 KiB/s)]
Retrieving package libcilkrts5-7.5.0+r278197-lp152.2.46.x86_64 (2/13), 60.7 KiB (120.1 KiB unpacked)
Retrieving: libcilkrts5-7.5.0+r278197-lp152.2.46.x86_64.rpm .........................................................................................[done (13.5 KiB/s)]
Retrieving package libmpx2-8.2.1+r264010-lp152.2.126.x86_64 (3/13), 19.1 KiB ( 18.3 KiB unpacked)
Retrieving: libmpx2-8.2.1+r264010-lp152.2.126.x86_64.rpm ...............................................................................................[done (945 B/s)]
Retrieving package libmpxwrappers2-8.2.1+r264010-lp152.2.126.x86_64 (4/13), 17.8 KiB ( 14.2 KiB unpacked)
Retrieving: libmpxwrappers2-8.2.1+r264010-lp152.2.126.x86_64.rpm ....................................................................................[done (15.0 KiB/s)]

Example 3: How to Upgrade all the Packages in OpenSUSE Linux

If you want to upgrade all the packages of your OpenSUSE Server to the latest version then you need to use zypper update command as shown below.

localhost:~ # zypper update
Loading repository data...
Reading installed packages...

The following 22 NEW packages are going to be installed:
kernel-default-5.3.18-lp152.57.1 libbind9-1600 libctf-nobfd0 libctf0 libdns1605 libirs1601 libisc1606 libisccc1600 libisccfg1600 libns1604 libuv1 libvulkan1
libyaml-cpp0_6 pipewire pipewire-modules pipewire-spa-plugins-0_2 pipewire-spa-tools pipewire-tools python3-pycairo raleway-fonts systemd-network
virtualbox-kmp-default

The following package is going to be REMOVED:
python3-cairo

The following 416 packages are going to be upgraded:
ImageMagick ImageMagick-config-7-SUSE MozillaFirefox MozillaFirefox-translations-common NetworkManager NetworkManager-branding-openSUSE NetworkManager-lang PackageKit
PackageKit-backend-zypp PackageKit-gstreamer-plugin PackageKit-gtk3-module PackageKit-lang aaa_base aaa_base-extras alsa apparmor-abstractions apparmor-docs
apparmor-parser apparmor-parser-lang apparmor-profiles apparmor-utils apparmor-utils-lang audit autoyast2-installation avahi avahi-lang bind-utils binutils bluez
brltty brltty-driver-at-spi2 brltty-driver-brlapi brltty-driver-speech-dispatcher brltty-driver-xwindow brltty-lang ca-certificates-mozilla cdda2wav cdrecord chrony
chrony-pool-openSUSE cpupower cryptsetup curl device-mapper diffutils diffutils-lang dmidecode dracut e2fsprogs file file-magic findutils findutils-lang firebird
flatpak fonttosfnt fwupd fwupd-lang gdm gdm-lang gdmflexiserver gettext-runtime ghostscript ghostscript-fonts-other ghostscript-fonts-std

Example 4: How to View all the Available Updates in OpenSUSE Linux

If you want to view all the available updates for your OpenSUSE Linux then you need to use zypper list-updates command as shown below.

localhost:~ # zypper list-updates
Loading repository data...
Reading installed packages...
S | Repository | Name | Current Version | Available Version | Arch
--+------------------------+-------------------------------------+---------------------------------------+------------------------------------------+-------
v | Main Update Repository | ImageMagick | 7.0.7.34-lp152.11.6 | 7.0.7.34-lp152.12.6.1 | x86_64
v | Main Update Repository | ImageMagick-config-7-SUSE | 7.0.7.34-lp152.11.6 | 7.0.7.34-lp152.12.6.1 | x86_64
v | Main Update Repository | MozillaFirefox | 68.9.0-lp152.1.1 | 78.5.0-lp152.2.30.1 | x86_64
v | Main Update Repository | MozillaFirefox-translations-common | 68.9.0-lp152.1.1 | 78.5.0-lp152.2.30.1 | x86_64
v | Main Update Repository | NetworkManager | 1.22.6-lp152.1.4 | 1.22.10-lp152.2.3.1 | x86_64
v | Main Update Repository | NetworkManager-branding-openSUSE | 42.1-lp152.1.2 | 42.1-lp152.2.6.1 | noarch
v | Main Update Repository | NetworkManager-lang | 1.22.6-lp152.1.4 | 1.22.10-lp152.2.3.1 | noarch
v | Main Update Repository | PackageKit | 1.1.13-lp152.2.3 | 1.1.13-lp152.3.11.1 | x86_64
v | Main Update Repository | PackageKit-backend-zypp | 1.1.13-lp152.2.3 | 1.1.13-lp152.3.11.1 | x86_64
v | Main Update Repository | PackageKit-gstreamer-plugin | 1.1.13-lp152.2.3 | 1.1.13-lp152.3.11.1 | x86_64
v | Main Update Repository | PackageKit-gtk3-module | 1.1.13-lp152.2.3 | 1.1.13-lp152.3.11.1 | x86_64
v | Main Update Repository | PackageKit-lang | 1.1.13-lp152.2.3 | 1.1.13-lp152.3.11.1 | noarch

Example 5: How to Remove a Package Using Zypper Command

If you want to remove a package then you need to use zypper remove <package_name> or zypper rm <package_name> command. In this example we are removing gcc package from OpenSUSE Linux Server using zypper remove gcc command as shown below.

localhost:~ # zypper remove gcc
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
gcc

1 package to remove.
No additional space will be used or freed after the operation.
Continue? [y/n/v/...? shows all options] (y): y
(1/1) Removing gcc-7-lp152.4.114.x86_64 ..........................................................................................................................[done]

Example 6: How to Search a Package from Repository

If you want to search a package from Repository then you need to use zypper search <package_name> or zypper se <package_name> command. In this example we are trying to search gcc related packages using zypper search gcc* command as shown below.

localhost:~ # zypper search gcc*
Loading repository data...
Reading installed packages...

S | Name | Summary | Type
--+---------------------+-----------------------------------------------------------+-----------
| gcc | The system GNU C Compiler | package
| gcc-32bit | The system GNU C Compiler | package
| gcc-PIE | A default configuration to build all binaries in PIE mode | package
| gcc-ada | The system GNU Ada Compiler | package
| gcc-ada-32bit | The system GNU Ada Compiler | package
| gcc-c++ | The system GNU C++ Compiler | package
| gcc-c++-32bit | The system GNU C++ Compiler | package
| gcc-fortran | The system GNU Fortran Compiler | package
| gcc-fortran-32bit | The system GNU Fortran Compiler | package

Example 7: How to Install a Package by its Name Using Zypper Command

If you want to Install a Package by its name then you need to use -n option with zypper install command as shown below. In this example we are trying to install gcc package with its name by using zypper install -n gcc command.

localhost:~ # zypper install -n gcc
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
gcc

1 new package to install.
Overall download size: 10.1 KiB. Already cached: 0 B. No additional space will be used or freed after the operation.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package gcc-7-lp152.4.114.x86_64 (1/1), 10.1 KiB ( 0 B unpacked)
Retrieving: gcc-7-lp152.4.114.x86_64.rpm .........................................................................................................................[done]

Checking for file conflicts: .....................................................................................................................................[done]
(1/1) Installing: gcc-7-lp152.4.114.x86_64 .......................................................................................................................[done]

Example 8: How to Get Information about a Package Using Zypper Command

If you to get the complete information about a certain package then you need to use zypper info <package_name> command. In this example, we are trying to know more about gcc package using zypper info gcc command as shown below.

localhost:~ # zypper info gcc
Loading repository data...
Reading installed packages...


Information for package gcc:
----------------------------
Repository : Main Repository
Name : gcc
Version : 7-lp152.4.114
Arch : x86_64
Vendor : openSUSE
Installed Size : 0 B
Installed : Yes
Status : up-to-date
Source package : gcc-7-lp152.4.114.src
Summary : The system GNU C Compiler
Description :
The system GNU C Compiler.

Example 9: How to Upgrade a Specific Package in OpenSUSE Linux

If you want to upgrade a specific package then you need to use zypper update <package_name> or zypper up <package_name> command. In this example, we are trying to upgrade flatpak package using zypper update flatpak command as shown below.

localhost:~ # zypper update flatpak
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is going to be upgraded:
flatpak

1 package to upgrade.
Overall download size: 1.1 MiB. Already cached: 0 B. After the operation, additional 7.0 B will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package flatpak-1.6.3-lp152.3.3.1.x86_64 (1/1), 1.1 MiB ( 4.8 MiB unpacked)
Retrieving delta: ./x86_64/flatpak-1.6.3-lp152.2.1_lp152.3.3.1.x86_64.drpm, 235.1 KiB
Retrieving: flatpak-1.6.3-lp152.2.1_lp152.3.3.1.x86_64.drpm .........................................................................................[done (15.0 KiB/s)]
Applying delta: ./flatpak-1.6.3-lp152.2.1_lp152.3.3.1.x86_64.drpm ................................................................................................[done]

Checking for file conflicts: .....................................................................................................................................[done]
(1/1) Installing: flatpak-1.6.3-lp152.3.3.1.x86_64 ...............................................................................................................[done]

Example 10: How to View All the available patches in OpenSUSE Linux

To view all the available patches in OpenSUSE Linux you need to use zypper patches command as shown below.

localhost:~ # zypper patches
Retrieving repository 'Main Update Repository' metadata ..........................................................................................................[done]
Building repository 'Main Update Repository' cache ...............................................................................................................[done]
Loading repository data...
Reading installed packages...
Repository | Name | Category | Severity | Interactive | Status | Summary
----------------------------+--------------------+-------------+-----------+-------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Update Repository (Non-Oss) | openSUSE-2019-2154 | security | moderate | --- | not needed | Security update for opera
Main Update Repository | openSUSE-2020-1001 | security | moderate | --- | not needed | Security update for rubygem-puma
Main Update Repository | openSUSE-2020-1002 | security | important | --- | not needed | Security update for python-ipaddress
Main Update Repository | openSUSE-2020-1004 | recommended | moderate | --- | not needed | Recommended update for lxd
Main Update Repository | openSUSE-2020-1005 | security | moderate | --- | not needed | Security update for pdns-recursor
Main Update Repository | openSUSE-2020-1006 | recommended | moderate | --- | not needed | Recommended update for resource-agents
Main Update Repository | openSUSE-2020-1007 | security | moderate | --- | not needed | Security update for ntp
Main Update Repository | openSUSE-2020-1008 | recommended | moderate | --- | not needed | Recommended update for keepassxc
Main Update Repository | openSUSE-2020-1009 | recommended | moderate | --- | needed | Recommended update for dracut
Main Update Repository | openSUSE-2020-1010 | recommended | important | --- | needed | Recommended update for yast2-installation
Main Update Repository | openSUSE-2020-1011 | security | important | --- | not needed | Security update for singularity
Main Update Repository | openSUSE-2020-1012 | recommended | moderate | --- | not needed | Recommended update for pan
Main Update Repository | openSUSE-2020-1014 | security | important | --- | not needed | Security update for google-compute-engine

Example 11: How to Lock a Package Using zypper command

If you want to lock a certain package then you need to use zypper al <package_name> command. In this example we are trying to lock gcc package using zypper al gcc command as shown below.

localhost:~ # zypper al gcc
Specified lock has been successfully added.

Example 12: How to remove lock from a package Using zypper command

To remove the lock from a package you need to use zypper rl <package_name> command as shown below. In this example we are removing lock from gcc package by using zypper rl gcc command.

localhost:~ # zypper rl gcc
1 lock has been successfully removed.

Example 13: How to Check if there is a lock on any of the packages

If you want to check for a defined packages locks then you need to use zypper ll command as shown below.

localhost:~ # zypper ll

There are no package locks defined.

Example 14: How to View all the Repositories in OpenSUSE Linux

If you want to view all the repositories in your OpenSUSE Server then you need to use zypper lr command as shown below.

localhost:~ # zypper lr
Repository priorities are without effect. All enabled repositories share the same priority.

# | Alias | Name | Enabled | GPG Check | Refresh
---+---------------------------+------------------------------------+---------+-----------+--------
1 | openSUSE-Leap-15.2-1 | openSUSE-Leap-15.2-1 | No | ---- | ----
2 | repo-debug | Debug Repository | No | ---- | ----
3 | repo-debug-non-oss | Debug Repository (Non-OSS) | No | ---- | ----
4 | repo-debug-update | Update Repository (Debug) | No | ---- | ----
5 | repo-debug-update-non-oss | Update Repository (Debug, Non-OSS) | No | ---- | ----
6 | repo-non-oss | Non-OSS Repository | Yes | (r ) Yes | Yes
7 | repo-oss | Main Repository | Yes | (r ) Yes | Yes
8 | repo-source | Source Repository | No | ---- | ----
9 | repo-source-non-oss | Source Repository (Non-OSS) | No | ---- | ----
10 | repo-update | Main Update Repository | Yes | (r ) Yes | Yes
11 | repo-update-non-oss | Update Repository (Non-Oss) | Yes | (r ) Yes | Yes

Example 15: How to Install a Package Using Its Source Package

If you want to install a package using its source package then you need to use zypper source-install <package_name> command as shown below. In this example we are installing mariadb package using its source package by using zypper source-install mariadb command.

localhost:~ # zypper source-install mariadb
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 51 NEW packages are going to be installed:
autoconf automake bison bison-lang cmake cmake-full cmake-man gcc gcc-c++ gcc7-c++ judy-devel judy-doc keyutils-devel krb5-devel libJudy1 libaio-devel
libarchive-devel libboost_headers1_66_0-devel libbz2-devel libcom_err-devel libedit-devel libevent-devel libjsoncpp19 libopenssl-1_1-devel libopenssl-devel
libpcre16-0 libpcrecpp0 libpcreposix0 libpq5 librhash0 libstdc++-devel libstdc++6-devel-gcc7 libtool libuv1 libverto-devel libxml2-devel lzo-devel ncurses-devel
pam-devel pcre-devel psqlODBC readline-devel sqlite3 systemd-devel systemd-rpm-macros tack tcpd-devel unixODBC unixODBC-devel xz-devel zlib-devel

The following source package is going to be installed:
mariadb

The following 3 recommended packages were automatically selected:
bison-lang judy-doc psqlODBC

51 new packages to install, 1 source package.
Overall download size: 114.7 MiB. Already cached: 0 B. After the operation, additional 313.6 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package autoconf-2.69-lp152.3.112.noarch (1/52), 706.0 KiB ( 2.2 MiB unpacked)
Retrieving: autoconf-2.69-lp152.3.112.noarch.rpm ...................................................................................................[done (195.0 KiB/s)]
Retrieving package bison-3.0.4-lp152.3.110.x86_64 (2/52), 483.6 KiB ( 1.2 MiB unpacked)
Retrieving: bison-3.0.4-lp152.3.110.x86_64.rpm ......................................................................................................[done (16.4 KiB/s)]
Retrieving package cmake-man-3.17.0-lp152.1.2.x86_64 (3/52), 610.6 KiB (530.0 KiB unpacked)

Example 16: How to Install Old Version of a Package Using zypper command

You can install old version of a package using zypper install --oldpackage <package_name> command even if the latest version is already installed. In this example we are trying to install old openssl package using zypper install --oldpackage openssl-1.1.0i-1p151.1.1.noarch.rpm command as shown below. As you can see from the below output, this might break the openssl package by ignoring some of its dependencies so you need to double check before installing old version of a package.

localhost:~ # zypper install --oldpackage openssl-1.1.0i-lp151.1.1.noarch.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides openssl-1_1 = 1.1.0i needed by openssl-1.1.0i-lp151.1.1.noarch
Solution 1: do not install openssl-1.1.0i-lp151.1.1.noarch
Solution 2: break openssl-1.1.0i-lp151.1.1.noarch by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c/d/?] (c):

Example 17: How to Clean Up All the Repositories Information from Cache

If you want to clean up all the repositories cache then you need to use zypper clean command as shown below.

localhost:~ # zypper clean
All repositories have been cleaned up.

Example 18: How to Suppress Package Installation Output Using --quiet Option

If you want to suppress the package installation output then you need to use --quiet option with zypper install command as shown below. In this example, we are trying to install sysstat package with --quiet option enabled by using zypper --quiet install sysstat command as shown below.

localhost:~ # zypper --quiet install sysstat

The following 5 NEW packages are going to be installed:
metamail procmail sharutils sharutils-lang sysstat

The following 2 recommended packages were automatically selected:
metamail sharutils-lang

5 new packages to install.
Overall download size: 967.6 KiB. Already cached: 0 B. After the operation, additional 3.4 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y

Example 19: How to Suppress Package Removal Output Using --quiet Option

Like installation you can also use remove the package quietly without showing anything on the output. In this example we are trying to remove sysstat package with --quiet option enabled using zypper --quiet remove sysstat command as shown below.

localhost:~ # zypper --quiet remove sysstat

The following package is going to be REMOVED:
sysstat

1 package to remove.
After the operation, 1.4 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y): y

Example 20: How to Non-Interactively Install a Package Using zypper command

If you want to non-interactively install a package using zypper command then you need to use --non-interactive option as shown below. This option allows the package to install without asking your confirmation. In this example we are trying to install sysstat package non-interactively using zypper --non-interactive install sysstat command.

localhost:~ # zypper --non-interactive install sysstat
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
sysstat

1 new package to install.
Overall download size: 374.9 KiB. Already cached: 0 B. After the operation, additional 1.4 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package sysstat-12.0.2-lp152.9.7.1.x86_64 (1/1), 374.9 KiB ( 1.4 MiB unpacked)
Retrieving: sysstat-12.0.2-lp152.9.7.1.x86_64.rpm ...................................................................................................[done (16.4 KiB/s)]

Checking for file conflicts: .....................................................................................................................................[done]
(1/1) Installing: sysstat-12.0.2-lp152.9.7.1.x86_64 ..............................................................................................................[done]

Example 21: How to Non-Interactively Remove a Package Using zypper Command

Similarly like installation you can also remove the package non-interactively. In this example we are trying to remove sysstat package non-interactively using zypper --non-interactive remove sysstat command as shown below.

localhost:~ # zypper --non-interactive remove sysstat
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
sysstat

1 package to remove.
After the operation, 1.4 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y): y
(1/1) Removing sysstat-12.0.2-lp152.9.7.1.x86_64 .................................................................................................................[done]

Example 22: How to Add a Repository in OpenSUSE Linux Using zypper Command

If you want to add a Repository in OpenSUSE Linux then you need to use zypper ar <repository_path> <alias> command as shown below. In this example we are trying to add VLC repository using zypper ar http://download.videolan.org/pub/vlc/SuSE/Leap_15.0/ vlc command.

localhost:~ # zypper ar http://download.videolan.org/pub/vlc/SuSE/Leap_15.0/ vlc
Adding repository 'vlc' ..........................................................................................................................................[done]
Repository 'vlc' successfully added

URI : http://download.videolan.org/pub/vlc/SuSE/Leap_15.0/
Enabled : Yes
GPG Check : Yes
Autorefresh : No
Priority : 99 (default priority)

Repository priorities are without effect. All enabled repositories share the same priority.

Example 23: How to Remove a Repository Using zypper Command 

If you want to remove a repository then you need to use zypper removerepo <package_name> command. In this example we are trying to remove vlc repo using zypper removerepo vlc command as shown below.

localhost:~ # zypper removerepo vlc
Removing repository 'vlc' ........................................................................................................................................[done]
Repository 'vlc' has been removed.

Example 24: How to Rename a Repository in OpenSUSE Linux

You can also rename a repository by using zypper renamerepo <old_repo_name> <new_repo_name> command. In this example we are renaming vlc repo to vlc-new by using zypper renamerepo vlc vlc-new command as shown below.

localhost:~ # zypper renamerepo vlc vlc-new
Repository 'vlc' renamed to 'vlc-new'.

Example 25: How to Disable a Repository in OpenSUSE Linux

If you need to disable a repository then you can easily do that by running zypper modifyrepo -d <package_name> command. For example we are trying to disable vlc-new repository by using zypper modifyrepo -d vlc-new command as shown below.

localhost:~ # zypper modifyrepo -d vlc-new
Repository 'vlc-new' has been successfully disabled.

Example 26: How to Enable a Repository in OpenSUSE Linux

Like disable, you can also enable the repository by using -e option as shown below. In this example we are enabling vlc-new repository by using zypper modifyrepo -e vlc-new command.

localhost:~ # zypper modifyrepo -e vlc-new
Repository 'vlc-new' has been successfully enabled.

Example 27: How to Install Only the Source for a Specific Package

If you are looking to install only the source of a specific package then you need to use zypper install -D <package_name> command. In this example we are installing source of mariadb package by using zypper install -D mariadb command as shown below.

localhost:~ # zypper install -D mariadb
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 4 NEW packages are going to be installed:
mariadb mariadb-client mariadb-errormessages python3-mysqlclient

The following recommended package was automatically selected:
mariadb

4 new packages to install.
Overall download size: 21.9 MiB. Already cached: 0 B. After the operation, additional 163.5 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y

Example 28: How to Install Only the Build dependencies of a Specific Package

If you want to install only the build dependencies of a specific package then you need to use zypper source-install -d <package_name> command. In this example we are trying to install build dependencies of sysstat package using zypper source-install -d sysstat command as shown below.

localhost:~ # zypper source-install -d sysstat
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
libsensors4-devel update-desktop-files

2 new packages to install.
Overall download size: 36.9 KiB. Already cached: 0 B. After the operation, additional 41.2 KiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package libsensors4-devel-3.5.0-lp152.1.5.x86_64 (1/2), 23.1 KiB ( 23.8 KiB unpacked)
Retrieving: libsensors4-devel-3.5.0-lp152.1.5.x86_64.rpm ............................................................................................[done (14.1 KiB/s)]
Retrieving package update-desktop-files-84.87-lp152.3.2.noarch (2/2), 13.8 KiB ( 17.4 KiB unpacked)
Retrieving: update-desktop-files-84.87-lp152.3.2.noarch.rpm ......................................................................................................[done]

Checking for file conflicts: .....................................................................................................................................[done]
(1/2) Installing: libsensors4-devel-3.5.0-lp152.1.5.x86_64 .......................................................................................................[done]
(2/2) Installing: update-desktop-files-84.87-lp152.3.2.noarch ....................................................................................................[done]

Example 29: How to List All the Packages from a Certain Repository in OpenSUSE Linux

If you want to view all the packages from a certain repository then you need to use zypper pa -ir <repo_name> command as shown below. In this example we are trying to check all the packages from repo-oss repo using zypper pa -ir repo-oss command as shown below.

localhost:~ # zypper pa -ir repo-oss 
Loading repository data...
Reading installed packages...
S | Repository | Name | Version | Arch
---+-----------------+----------------------------------------------+---------------------------------------+-------
i | Main Repository | AppStream | 0.12.6-lp152.2.11 | x86_64
i | Main Repository | AppStream-lang | 0.12.6-lp152.2.11 | noarch
i | Main Repository | GeoIP | 1.6.12-lp152.3.2 | x86_64
i | Main Repository | GeoIP-data | 1.6.12-lp152.3.2 | noarch
i | Main Repository | ImageMagick | 7.0.7.34-lp152.11.6 | x86_64
i | Main Repository | ImageMagick-config-7-SUSE | 7.0.7.34-lp152.11.6 | x86_64
i | Main Repository | Mesa | 19.3.4-lp152.27.1 | x86_64
i | Main Repository | Mesa-demo-x | 8.3.0-lp152.3.7 | x86_64
i | Main Repository | Mesa-dri | 19.3.4-lp152.27.1 | x86_64

Example 30: How to Upgrade Current OpenSUSE Linux to Latest Version

If you want to upgrade current OpenSUSE Linux to latest version then you need to use zypper dist-upgrade command as shown below.

localhost:~ # zypper dist-upgrade
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...

The following 22 NEW packages are going to be installed:
kernel-default-5.3.18-lp152.57.1 libbind9-1600 libctf-nobfd0 libctf0 libdns1605 libirs1601 libisc1606 libisccc1600 libisccfg1600 libns1604 libvulkan1 libyaml-cpp0_6
openSUSE-release-ftp pipewire pipewire-modules pipewire-spa-plugins-0_2 pipewire-spa-tools pipewire-tools python3-pycairo raleway-fonts systemd-network
virtualbox-kmp-default

The following package is going to be REMOVED:
python3-cairo

The following 424 packages are going to be upgraded:
ImageMagick ImageMagick-config-7-SUSE MozillaFirefox MozillaFirefox-translations-common NetworkManager NetworkManager-branding-openSUSE NetworkManager-lang PackageKit
PackageKit-backend-zypp PackageKit-gstreamer-plugin PackageKit-gtk3-module PackageKit-lang aaa_base aaa_base-extras alsa apparmor-abstractions apparmor-docs
apparmor-parser apparmor-parser-lang apparmor-profiles apparmor-utils apparmor-utils-lang audit autoyast2-installation avahi avahi-lang bind-utils binutils bluez
brltty brltty-driver-at-spi2 brltty-driver-brlapi brltty-driver-speech-dispatcher brltty-driver-xwindow brltty-lang ca-certificates-mozilla cdda2wav cdrecord chrony

Example 31: How to Auto Agree to the License Agreements using zypper command

If you want to auto agree to the License agreements for the patch then you need to use zypper patch --auto-agree-with-license command as shown below.

localhost:~ # zypper patch --auto-agree-with-licenses
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
libyaml-cpp0_6

The following 7 NEW patches are going to be installed:
openSUSE-2020-1019 openSUSE-2020-1065 openSUSE-2020-1515 openSUSE-2020-1615 openSUSE-2020-1794 openSUSE-2020-1980 openSUSE-2020-2007

The following 16 packages are going to be upgraded:
PackageKit PackageKit-backend-zypp PackageKit-gstreamer-plugin PackageKit-gtk3-module PackageKit-lang libpackagekit-glib2-18 libsolv-tools libzypp python3-solv
ruby-solv typelib-1_0-PackageKitGlib-1_0 yast2-packager yast2-pkg-bindings zypper zypper-log zypper-needs-restarting

16 packages to upgrade, 1 new.
Overall download size: 0 B. Already cached: 7.2 MiB. After the operation, additional 805.4 KiB will be used.

Note: Package manager restart required. (Run this command once again after the update stack got
updated)
Continue? [y/n/v/...? shows all options] (y):

Example 32: How to Refresh a Repository in OpenSUSE Linux using zypper command

If you want to refresh a repository then you need to use zypper refresh <repo-name> command as shown below. In this example we are trying to refresh repo-oss repo using zypper refresh repo-oss command.

localhost:~ # zypper refresh repo-oss
Repository 'Main Repository' is up to date.
Specified repositories have been refreshed.

Example 33: How to Forcefully Install a Package in OpenSUSE Linux

If you are looking to forcefully install a package then you can use -f option as shown below. In this example we are trying to install sysstat package forcefully using zypper install -f sysstat command.

localhost:~ # zypper install -f sysstat
Loading repository data...
Reading installed packages...
Forcing installation of 'sysstat-12.0.2-lp152.9.7.1.x86_64' from repository 'Main Update Repository'.
Resolving package dependencies...

The following NEW package is going to be installed:
sysstat

1 new package to install.
Overall download size: 374.9 KiB. Already cached: 0 B. After the operation, additional 1.4 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package sysstat-12.0.2-lp152.9.7.1.x86_64 (1/1), 374.9 KiB ( 1.4 MiB unpacked)
Retrieving: sysstat-12.0.2-lp152.9.7.1.x86_64.rpm ................................................................................................................[done]

Checking for file conflicts: .....................................................................................................................................[done]
(1/1) Installing: sysstat-12.0.2-lp152.9.7.1.x86_64 ..............................................................................................................[done]

Example 34: How to List All the Language Codes using zypper command

If want to check all the language codes then you need to use zypper lloc command as shown below.

localhost:~ # zypper lloc
Code | Language | Requested
------+-------------------------+----------
en | English | Fallback
en_US | English (United States) | Requested

Example 35: How to Show Complete Information About a Package in OpenSUSE Linux

If you are looking for complete information about a package then you need to use zypper product-info package:<package_name> command as shown below. In this example we are looking for complete information about sysstat package using zypper product-info package:sysstat command.

localhost:~ # zypper product-info package:sysstat
Loading repository data...
Reading installed packages...


Information for package sysstat:
--------------------------------
Repository : Main Update Repository
Name : sysstat
Version : 12.0.2-lp152.9.7.1
Arch : x86_64
Vendor : openSUSE
Installed Size : 1.4 MiB
Installed : Yes
Status : up-to-date
Source package : sysstat-12.0.2-lp152.9.7.1.src
Summary : Sar and Iostat Commands for Linux
Description :
Sar and Iostat commands for Linux. The sar command collects and reports
system activity information. The iostat command reports CPU statistics
and I/O statistics for TTY devices and disks. The information
collected by sar and iostat can be saved in a binary file for future
inspection. Both commands now support SMP machines when displaying CPU
utilization.

Example 36: How to List All Available Patterns in OpenSUSE Linux

If you want to list all the available patterns then you need to use zypper pt command as shown below.

localhost:~ # zypper pt
Loading repository data...
Reading installed packages...
S | Name | Version | Repository | Dependency
---+------------------------------+---------------------+--------------------+-----------
| 32bit | 20171206-lp152.34.2 | Main Repository |
i | apparmor | 20171206-lp152.34.2 | Main Repository |
i | apparmor | 20171206-lp152.34.2 | @System |
i+ | base | 20171206-lp152.34.2 | Main Repository |
i+ | base | 20171206-lp152.34.2 | @System |
| books | 20170319-lp152.5.3 | Main Repository |
| ceph_base | 1.0-lp152.2.1 | Main Repository |
| console | 20171206-lp152.34.2 | Main Repository |
| container_runtime | 5.0-lp152.3.1 | Main Repository |

Example 37: How to List Available Products in OpenSUSE Linux

If you want to check all the available products then you need to use zypper pd command as shown below.

localhost:~ # zypper pd
Loading repository data...
Reading installed packages...
S | Repository | Internal Name | Name | Version | Arch | Is Base
---+--------------------+-----------------------+---------------------------------+---------+--------+--------
i+ | Main Repository | openSUSE | openSUSE Leap 15.2 | 15.2-1 | x86_64 | Yes
| Non-OSS Repository | openSUSE-Addon-NonOss | openSUSE Leap 15.2 NonOSS Addon | 15.2-0 | x86_64 | No

Example 38: How to Download RPM File of a Package in Local Directory

If you only want to download the rpm file of a package then you need to use zypper download <package_name> command as shown below. It will download the package in default directory. In this example we are trying to download sysstat rpm package using zypper download sysstat command. This will download the package under /var/cache/zypp/packages/repo-update/x86_64 path.

localhost:~ # zypper download sysstat
Loading repository data...
Reading installed packages...
Retrieving package sysstat-12.0.2-lp152.9.7.1.x86_64 (1/1), 374.9 KiB ( 1.4 MiB unpacked)
(1/1) /var/cache/zypp/packages/repo-update/x86_64/sysstat-12.0.2-lp152.9.7.1.x86_64.rpm ..........................................................................[done]

To check the downloaded package you can list it by using ls -lrt command as shown below.

localhost:~ # ls -lrt /var/cache/zypp/packages/repo-update/x86_64/sysstat-12.0.2-lp152.9.7.1.x86_64.rpm
-rw-r--r-- 1 root root 383928 Dec 19 08:01 /var/cache/zypp/packages/repo-update/x86_64/sysstat-12.0.2-lp152.9.7.1.x86_64.rpm

Example 39: How to Check If needs-reboot flag was set using zypper command

If you want to check if the systems requires reboot then you need to check the needs-rebooting flag. You can check this flag by running zypper needs-rebooting command as shown below. Since here no new core libraries or services had been updated so reboot is probably not required as of now. This output could be different in your case.

localhost:~ # zypper needs-rebooting
No core libraries or services have been updated.
Reboot is probably not necessary.

Example 40: How to List All the Packages Providing Specific Capability

If you want to List all the packages providing specific capability then you need to use zypper wp command as shown below.

localhost:~ # zypper wp
Command 'what-provides' is replaced by 'search --provides --match-exact'.
See 'help search' for all available options.
Loading repository data...
Reading installed packages...

S | Name | Summary

| Type
| xmgrace-devel | Grace library | package
| xmh | Graphical user interface to send and read mail with MH | package
| xmined | Graphical interface using Xterm of Mined text editor | package
i | xml-commons-apis | APIs for DOM, SAX, and JAXP | package
| xml-commons-apis-javadoc | Javadoc for xml-commons-apis | package
| xml-commons-apis-manual | Manual for xml-commons-apis | package
| xml-commons-resolver | Resolver subproject of xml-commons | package
| xml-commons-resolver-javadoc | Javadoc for xml-commons-resolver | package
| xml-im-exporter | XML Im-/Exporter | package
| xml-im-exporter-javadoc | XML Im-/Exporter | package
| xml-maven-plugin | Maven XML Plugin | package

Example 41: How to Search a Package Using Matching Pattern using zypper command

If you want to search a package using some matching pattern then you need to use zypper search <package_matching_pattern> command as shown below. In this example we are trying to search all sysstat related packages using zypper search sysstat* command.

localhost:~ # zypper search sysstat*
Loading repository data...
Reading installed packages...

S | Name | Summary | Type
---+--------------+-------------------------------------------------+-----------
i+ | sysstat | Sar and Iostat Commands for Linux | package
| sysstat | Sar and Iostat Commands for Linux | srcpackage
| sysstat-isag | Interactive System Activity Grapher for sysstat | package

Example 42: How to Check all the available zypper subcommand

To check all the available subcommand you need to use zypper subcommand as shown below.

localhost:~ # zypper subcommand
<subcommand> [--command-options] [arguments]

Zypper subcommands are standalone executables that live in the
zypper_execdir ('/usr/lib/zypper/commands').

For subcommands zypper provides a wrapper that knows where the
subcommands live, and runs them by passing command-line arguments
to them.

If a subcommand is not found in the zypper_execdir, the wrapper
will look in the rest of your $PATH for it. Thus, it's possible
to write local zypper extensions that don't live in system space.

Using zypper global-options together with subcommands, as well as
executing subcommands in 'zypper shell' is currently not supported.

Available zypper subcommands in '/usr/lib/zypper/commands'

appstream-cache
lifecycle

Zypper subcommands available from elsewhere on your $PATH

log

Type 'zypper help <subcommand>' to get subcommand-specific help if available.

Example 43: How to Purge Old Kernels Using zypper command

If you have older kernel version in your server and you are looking to purge those kernels then you need to use zypper purge-kernels command as shown below. It will keep the latest kernel and purge the old kernels.

localhost:~ # zypper purge-kernels
Reading installed packages...

Preparing to purge obsolete kernels...
Configuration: latest,latest-1,running
Running kernel release: 5.3.18-lp152.19-default
Running kernel arch: x86_64

Resolving package dependencies...

Nothing to do.

Example 44: How to Compare two version strings Using zypper command

You can use a special functionality of zypper command where it can compare two strings and shows which one is older. In this example we are comparing string 6.2 and 8.9 using zypper vcmp -m 6.2 8.9 command and from the output it shows that version 6.2 is older than 8.9.

localhost:~ # zypper vcmp -m 6.2 8.9
6.2 is older than 8.9

Example 45: How to Print Target Operating System ID String Using zypper command

If you want to show the target Operating System ID String then you need to use zypper tos command as shown below.

localhost:~ # zypper tos
openSUSE-Leap-15.2-x86_64

Example 46: How to Start Zypper Shell and Run a Command

You can start a zypper shell and run commands from that shell. It can be start by using zypper sh command and then you can run zypper managed commands there. For example in this case we are trying to remove sysstat package from zypper shell using remove sysstat command as shown below.

localhost:~ # zypper sh
zypper> remove sysstat
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
sysstat

1 package to remove.
After the operation, 1.4 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y): y
(1/1) Removing sysstat-12.0.2-lp152.9.7.1.x86_64 .................................................................................................................[done]

zypper> quit

Example 47: How to Take Backup of Repositories Using zypper Command

If you are planning to take backup of all the repositories then you need to use zypper lr --export <repo_path> command as shown below. In this example we are taking the repository backup on /opt/repo.bkp path using zypper lr --export /opt/repo.bkp command.

localhost:~ # zypper lr --export /opt/repo.bkp
Repositories have been successfully exported to /opt/repo.bkp.repo.

Example 48: How to Restore Repositories from Repo Backup Using zypper Command

You can also restore the repo from above taken backup by simply using zypper addrepo /opt/repo.bkp.repo command as shown below. In this case since all the repos are already there so it won't restore any repo again.

localhost:~ # zypper addrepo /opt/repo.bkp.repo
This is a changeable read-only media (CD/DVD), disabling autorefresh.
Adding repository 'openSUSE-Leap-15.2-1' ........................................................................................................................[error]
Repository named 'openSUSE-Leap-15.2-1' already exists. Please use another alias.
Adding repository 'Debug Repository' ............................................................................................................................[error]
Repository named 'repo-debug' already exists. Please use another alias.
Adding repository 'Debug Repository (Non-OSS)' ..................................................................................................................[error]
Repository named 'repo-debug-non-oss' already exists. Please use another alias.
Adding repository 'Update Repository (Debug)' ...................................................................................................................[error]
Repository named 'repo-debug-update' already exists. Please use another alias.
Adding repository 'Update Repository (Debug, Non-OSS)' ..........................................................................................................[error]
Repository named 'repo-debug-update-non-oss' already exists. Please use another alias.
Adding repository 'Non-OSS Repository' ..........................................................................................................................[error]

Example 49: How to Check all the available Options of zypper Command

If you want to check all the available options of zipper command then you need to use zypper --help command as shown below.

localhost:~ # zypper --help

Usage:

zypper [--GLOBAL-OPTIONS] <COMMAND> [--COMMAND-OPTIONS] [ARGUMENTS]
zypper <SUBCOMMAND> [--COMMAND-OPTIONS] [ARGUMENTS]

Global Options:

--help, -h Help.
--version, -V Output the version number.
--promptids Output a list of zypper's user prompts.
--config, -c <FILE> Use specified config file instead of the default.
--userdata <STRING> User defined transaction id used in history and plugins.
--quiet, -q Suppress normal output, print only error messages.
--verbose, -v Increase verbosity.
--color
--no-color Whether to use colors in output if tty supports it.
--no-abbrev, -A Do not abbreviate text in tables. Default: false
--table-style, -s <INTEGER>
Table style (0-11).

Example 50: How to Check Man Page of zypper command

If you want to check the man page of zypper command then you need to use man zypper command as shown below.

localhost:~ # man zypper
ZYPPER(8) ZYPPER ZYPPER(8)

NAME
zypper - Command-line interface to ZYpp system management library (libzypp)

SYNOPSIS
zypper [--global-opts] command [--command-opts] [command-arguments]

zypper subcommand [--command-opts] [command-arguments]

zypper help command

DESCRIPTION
zypper is a command-line interface to ZYpp system management library (libzypp). It can be used to install, update, remove software, manage repositories,
perform various queries, and more.

CONCEPTS
Most of the following concepts are common for all applications based on the libzypp package management library, but there are some zypper specifics.

System Packages
The set of installed packages on a system is sometimes denoted as repository @System or System Packages. In contrast to available repositories providing
packages which can be installed, @System provides packages which can only be deleted. Installed packages which are not also provided by at least one of the

 

 

 

 

 

 

 

 

 

 

Popular Recommendations:-

How to Start / Stop / Restart Network Service in OpenSUSE Linux

How to Check Stateful and Stateless Pods in Kubernetes Cluster

3 Easy Ways to Check/Find OpenSUSE Linux Version

6 Easy Steps to Setup and Manage Log rotation Using logrotate in Linux

Migrate CentOS 8 to CentOS Stream 8 in 6 Easy Steps

26 iostat, vmstat and mpstat command examples to Monitor Linux Performance

Practical Steps to Install iostat and mpstat command on Linux(RHEL/CentOS 7/8)

16 Fdisk command examples to Manage Disk Partitions in Linux

Leave a Comment