Suse Enterprise Linux and its free derivative OpenSUSE use a package manager called “zypperâ€. Zypper is a fast easy to use package management tool. In my opinion zypper is hands down the best package manager out there. It provides meaningful, easy to read output, it resolves package dependencies quickly, and it has a cool name.
Zypper has many options that can be abbreviated; install (in), search (se), info (if), update (up) and lots of others.
Basic package operations
Search for a package
Search with zypper search <search term> or zypper se <search term>
luke@OpenSUSE-tst:~> sudo zypper search apache2 Loading repository data... Reading installed packages... S | Name | Summary | Type --+----------------------------+----------------------------------------------------------------------+-------- | apache2 | The Apache Web Server Version 2.4 | package | apache2-devel | Apache 2 Header and Include Files | package | apache2-doc | Additional Package Documentation | package | apache2-event | Apache 2 event MPM (Multi-Processing Module) | package | apache2-example-pages | Example Pages for the Apache 2 Web Server | package | apache2-icons-oxygen | Oxygen icons for Apache 2 | package | apache2-mod_apparmor | AppArmor module for apache2 | package | apache2-mod_auth_kerb | Kerberos Module for Apache | package | apache2-mod_authn_otp | Apache module for one-time password authentication | package | apache2-mod_dnssd | Apache2 module for Zeroconf support via DNS-SD | package | apache2-mod_evasive | Denial of Service evasion module for Apache | package | apache2-mod_fastcgi | A FastCGI Module for Apache 2 | package | apache2-mod_fcgid | Alternative FastCGI module for Apache2 | package | apache2-mod_jk | Connectors between Apache and Tomcat Servlet Container | package | apache2-mod_mono | Run ASP.NET Pages on Unix with Apache and Mono | package | apache2-mod_nss | SSL/TLS module for the Apache HTTP server | package | apache2-mod_perl | Embedded Perl for Apache | package | apache2-mod_perl-devel | Embedded Perl for Apache - Development package | package | apache2-mod_php5 | PHP5 Module for Apache 2.0 | package | apache2-mod_php7 | PHP7 Module for Apache 2.0 | package | apache2-mod_proxy_uwsgi | uWSGI Proxy Module for Apache 2.0 | package | apache2-mod_python | A Python Module for the Apache 2 Web Server | package | apache2-mod_scgi | Apache module named mod_scgi that implements the client side of th-> | package | apache2-mod_security2 | ModSecurity Open Source Web Application Firewall | package | apache2-mod_tidy | Apache Module using the Tidy Library to Clean Up HTML, XHTML, and -> | package | apache2-mod_uwsgi | uWSGI Module for Apache 2.0 | package | apache2-mod_wsgi | Python WSGI adapter module for Apache | package | apache2-mod_wsgi-python3 | A WSGI interface for Python3 web applications in Apache | package | apache2-prefork | Apache 2 "prefork" MPM (Multi-Processing Module) | package | apache2-utils | Apache 2 utilities | package | apache2-worker | Apache 2 worker MPM (Multi-Processing Module) | package | perl-Apache2-AuthCookieDBI | An AuthCookie module backed by a DBI database. | package
As you can see the output is clean and includes a short summary of each matching item in the search.
Get info on a package
Use zypper info <package> or zypper if <package>
luke@OpenSUSE-tst:~> zypper info apache2 Loading repository data... Reading installed packages... Information for package apache2: -------------------------------- Repository : Main Repository (OSS) Name : apache2 Version : 2.4.23-4.3 Arch : x86_64 Vendor : openSUSE Installed Size : 4.0 MiB Installed : No Status : not installed Summary : The Apache Web Server Version 2.4 Description : This version of httpd is a major release of the 2.4 stable branch, and represents the best available version of Apache HTTP Server. New features include Loadable MPMs, major improvements to OCSP support, mod_lua, Dynamic Reverse Proxy configuration, Improved Authentication/ Authorization, FastCGI Proxy, New Expression Parser, and a Small Object Caching API. See /usr/share/doc/packages/apache2/, http://httpd.apache.org/, and http://httpd.apache.org/docs-2.4/upgrading.html.
The info option will show you which repository the package is in, its name, version, whether or not it is installed, and a brief description.
Install a package
To install a package type zypper install <package name> or zypper in <package name>
luke@OpenSUSE-tst:~> sudo zypper in apache2 Loading repository data... Reading installed packages... Resolving package dependencies... The following 6 NEW packages are going to be installed: apache2 apache2-prefork apache2-utils libapr1 libapr-util1 libnghttp2-14 6 new packages to install. Overall download size: 1.8 MiB. Already cached: 0 B. After the operation, additional 5.4 MiB will be used. Continue? [y/n/? shows all options] (y):
Running the install option solves for all dependencies quickly, and display’s them in a way that allows an administrator to easily see everything that will be installed and how much disk space will be consumed. In this case we see 6 new packages.
Check for updates
Check for updates with zypper list-updates or zypper lu
luke@OpenSUSE-tst:~> zypper lu Loading repository data... Reading installed packages... S | Repository | Name | Current Version | Available Version | Arch --+------------------------+-----------------------------+-----------------+-------------------------+------- v | Main Update Repository | ImageMagick | 6.8.8.1-20.1 | 6.8.8.1-22.2 | x86_64 v | Main Update Repository | alsa | 1.1.2-1.2 | 1.1.2-3.1 | x86_64 v | Main Update Repository | autoyast2-installation | 3.1.151-1.2 | 3.1.154-3.1 | noarch v | Main Update Repository | dolphin | 16.08.2-1.1 | 16.08.2-3.1 | x86_64 v | Main Update Repository | dolphin-part | 16.08.2-1.1 | 16.08.2-3.1 | x86_64 v | Main Update Repository | ispell | 3.3.02-111.4 | 3.3.02-113.1 | x86_64 v | Main Update Repository | ispell-american | 3.3.02-111.4 | 3.3.02-113.1 | x86_64 v | Main Update Repository | java-1_7_0-openjdk | 1.7.0.111-35.1 | 1.7.0.121-37.2 | x86_64 v | Main Update Repository | java-1_7_0-openjdk-headless | 1.7.0.111-35.1 | 1.7.0.121-37.2 | x86_64 v | Main Update Repository | k3b | 2.0.3-6.21 | 2.0.3-9.1 | x86_64 v | Main Update Repository | k3b-lang | 2.0.3-6.21 | 2.0.3-9.1 | noarch v | Main Update Repository | kernel-default | 4.4.36-5.1 | 4.4.36-8.1 | x86_64 v | Main Update Repository | libMagickCore-6_Q16-1 | 6.8.8.1-20.1 | 6.8.8.1-22.2 | x86_64 v | Main Update Repository | libMagickWand-6_Q16-1 | 6.8.8.1-20.1 | 6.8.8.1-22.2 | x86_64 v | Main Update Repository | libasound2 | 1.1.2-1.2 | 1.1.2-3.1 | x86_64 v | Main Update Repository | libblkid1 | 2.28-5.10 | 2.28-7.1 | x86_64 v | Main Update Repository | libdolphinvcs5 | 16.08.2-1.1 | 16.08.2-3.1 | x86_64 v | Main Update Repository | libfdisk1 | 2.28-5.10 | 2.28-7.1 | x86_64 v | Main Update Repository | libgc1 | 7.2d-6.4 | 7.2d-8.1 | x86_64 v | Main Update Repository | libgit2-24 | 0.24.1-1.16 | 0.24.1-3.1 | x86_64 v | Main Update Repository | libmount1 | 2.28-5.10 | 2.28-7.1 | x86_64 v | Main Update Repository | libpcre1 | 8.33-4.51 | 8.39-6.1 | x86_64 v | Main Update Repository | libpcre1-32bit | 8.33-4.51 | 8.39-6.1 | x86_64 v | Main Update Repository | libpcre16-0 | 8.33-4.51 | 8.39-6.1 | x86_64 v | Main Update Repository | libsensors4 | 3.4.0-2.4 | 3.4.0-4.1 | x86_64 v | Main Update Repository | libsmartcols1 | 2.28-5.10 | 2.28-7.1 | x86_64 v | Main Update Repository | libsystemd0 | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | libsystemd0-32bit | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | libudev1 | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | libuuid1 | 2.28-5.10 | 2.28-7.1 | x86_64 v | Main Update Repository | libwicked-0-6 | 0.6.38-2.1 | 0.6.39-4.1 | x86_64 v | Main Update Repository | systemd | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | systemd-32bit | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | systemd-bash-completion | 228-13.1 | 228-15.1 | noarch v | Main Update Repository | systemd-logger | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | systemd-sysvinit | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | udev | 228-13.1 | 228-15.1 | x86_64 v | Main Update Repository | util-linux | 2.28-5.10 | 2.28-7.1 | x86_64 v | Main Update Repository | util-linux-lang | 2.28-5.10 | 2.28-7.1 | noarch v | Main Update Repository | util-linux-systemd | 2.28-5.2 | 2.28-7.1 | x86_64 v | Main Update Repository | w3m | 0.5.3-158.2 | 0.5.3.git20161120-160.1 | x86_64 v | Main Update Repository | wicked | 0.6.38-2.1 | 0.6.39-4.1 | x86_64 v | Main Update Repository | wicked-service | 0.6.38-2.1 | 0.6.39-4.1 | x86_64 v | Main Update Repository | xdm | 1.1.11-11.1 | 1.1.11-13.1 | x86_64 v | Main Update Repository | xdm-xsession | 1.1.11-11.1 | 1.1.11-13.1 | x86_64 v | Main Update Repository | yast2-services-manager | 3.1.42-16.1 | 3.1.43-18.1 | noarch
List updates presents a table that shows which repository an update will come from, which packages have an update, the current version, and the latest available version.
Update with zypper
Update the system with zypper update or zypper up
luke@OpenSUSE-tst:~> sudo zypper up Loading repository data... Reading installed packages... The following NEW package is going to be installed: kernel-default-4.4.36-8.1 The following application is going to be REMOVED: Dolphin The following 45 packages are going to be upgraded: alsa autoyast2-installation dolphin dolphin-part ImageMagick ispell ispell-american java-1_7_0-openjdk java-1_7_0-openjdk-headless k3b k3b-lang libasound2 libblkid1 libdolphinvcs5 libfdisk1 libgc1 libgit2-24 libMagickCore-6_Q16-1 libMagickWand-6_Q16-1 libmount1 libpcre1 libpcre1-32bit libpcre16-0 libsensors4 libsmartcols1 libsystemd0 libsystemd0-32bit libudev1 libuuid1 libwicked-0-6 systemd systemd-32bit systemd-bash-completion systemd-logger systemd-sysvinit udev util-linux util-linux-lang util-linux-systemd w3m wicked wicked-service xdm xdm-xsession yast2-services-manager 45 packages to upgrade, 1 new. Overall download size: 121.1 MiB. Already cached: 0 B. After the operation, additional 237.9 MiB will be used. Continue? [y/n/? shows all options] (y):
Once again you see each package that is to be updated along with disk usage.
After the update has completed use zypper ps to show which processes, if any, need to be restarted. In this case we updated the kernel so it’s a good idea to do a full reboot.
List installed packages
To get a list of all installed packages try running
sudo zypper se -i
 Find patterns
Suse uses the term patterns to describe groups of packages that are commonly installed together. For instance a mail server will have an email service, maybe an antivirus scanner, a spam blocker…
Try sudo zypper patterns
to get a list of installable patterns.
More info
For further reading you can always check the man pages man zypper
 or check out Suse documentation here: https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_zypper.html
Luke has an RHCSA for Red Hat Enterpirse Linux 7 and currently works as a Linux Systems Adminstrator in Ohio.
This post, re-published here with permission, was originally published on Luke’s site here.
Leave a Reply