openSUSE Leap 15.1openSUSE is one of those distros I have always been interested in but which I had never used for more than a few hours. Recently the project released Leap 15.1, which was a good enough reason to give the distro a proper spin.
The distro hardly needs an introduction. It is a community project sponsored by SUSE, one of the larger commercial Linux vendors. openSUSE maintains two distros: Tumbleweed is a rolling release distro and upstream to SUSE Linux Enterprise (SLE). Leap is a stable (non-rolling) distro that is downstream to SLE. A new version of Leap is released roughly once a year, and each version is supported for 18 months. The Leap 15.x series as a whole is supported for three years.
openSUSE is probably best known for the Btrfs file system, Snapper and YaST. As Leap 15.1 is a relatively small, conservative upgrade from 15.0 I will mainly focus on these features. I will also have a look at where things may be heading.
Upgrading from 15.0
I started my trial by installing Leap 15.0. I went with the default KDE Plasma desktop and the default partitioning scheme: the installer gave me a /boot/efi partition, a Btrfs root file system and an XFS /home partition). The reason for starting with the previous release was partly to get an idea of what has changed in 15.1 and partly to test the upgrade process.The upgrade worked but it was more involved than system upgrades in Ubuntu and Fedora. This is mainly because you need to manually move the /var/cache directory to a separate Btrfs subvolume. I gather that openSUSE is working on making upgrading the system easier and that you may only have to run "zypper --releasever 15.2 dup" when Leap 15.2 comes out. If you have ever upgraded a Fedora install then that command will look very familiar.
openSUSE 15.1 -- Upgrading from Leap 15.0 to 15.1 (full image size: 151kB, resolution: 1366x768 pixels)
The upgrade process is described quite well on the wiki (see the link above). One thing I appreciate is that the documentation strongly recommends disabling third-party repositories before starting the upgrade and to run the "zypper dup" command only after switching to the multi-user target (the equivalent of what used to be runlevel 3).
Visually, Leap 15.0 and 15.1 look pretty much the same. Leap 15.1 has the same wallpaper and the Plasma desktop has moved forward ever so slightly, from version 5.12.5 to 5.12.8 (the current stable version is 5.15.5). Similarly, most pre-installed applications are a little more up to date than they were but by no means "bleeding edge". The same goes for the kernel (4.12) and systemd (234). This is of course by design - for users who want the latest and greatest software there is Tumbleweed.
openSUSE 15.1 -- Plasma desktop after the upgrade (full image size: 475kB, resolution: 1366x768 pixels)
Fresh install (KDE Plasma and GNOME)
For a fresh installation there is a single ISO that lets you install Leap with either the KDE, GNOME or IceWM desktop (there are two server versions on the ISO as well - more about them later). As there is a lot of stuff on the image it is rather large (over 4GB). If you prefer a smaller ISO then you can download the network image, which is just 120MB. Of course, you will then have to download all packages you need during the installation process but it should save a fair amount of bandwidth.
openSUSE uses its own installer. As the default ISO doesn't include a live environment (there are separate ISOs for that) I am not able to show you pretty screen shots but I can report that the installer works very well. For the most part you can just click the Next button a handful of times. However, if you don't want to go with the defaults then there are plenty of customisation options. For instance, you've got the option to enable various "testing" or "debugging" repositories and towards the end of the install you can disable or enable services like the firewall and SSH (the default is to have the firewall enabled and SSH disabled).
I was particularly impressed with the partitioning tool. The installer suggested a different layout from the one I got when I installed Leap 15.0 - instead of a separate XFS /home partition the installer now gave me a single Btrfs root partition. If you prefer a custom layout you can select either a "guided" or "expert" partitioner. The former asks you a series of questions to guide you through the partitioning step-by-step while the latter option is a full-fledged partitioner that assumes you know what you are doing.
My main tweak to the default set-up was that I chose to encrypt my laptop's hard drive. Here I ran into a slightly annoying issue: when I boot my laptop I have to enter the encryption password twice: first to get to the GRUB bootloader and then to decrypt the root partition. There is some information on the wiki about this issue but the suggested solution didn't work for me.
I also had a quick look GNOME, which is my preferred desktop environment. The GNOME version is 3.26.2, which is the exact same version that was used in Leap 15.0. The desktop has very few customisations (all extensions are disabled) and the default session uses Wayland rather than X.Org. Other sessions are available, including GNOME on X.Org, GNOME Classic and SLE Classic. The latter is presumably the desktop that is shipped in SUSE Linux Enterprise. It has a more traditional layout, with a single panel at the bottom of the screen. Interestingly, the SLE Classic option also uses Wayland by default.
openSUSE 15.1 -- The GNOME desktop, running the GNOME SLE session, and lots of aliases (full image size: 125kB, resolution: 1366x768 pixels)
Whereas the main desktops are near-standard implementations, the command line experience has been customised: openSUSE seems to like aliases. I am not a great fan of distros adding lots of aliases, in particular if they do things such as adding the -i option to rm. The aliases in openSUSE shouldn't get in your way, and there are a few I quite like. Using "..." to navigate up two directories is quite handy and linking "ls-l" to "ls -l" neatly deals with the sort of typos I make too often.
Software and package management
Leap ships with a fair amount of pre-installed software. Among others, you get Firefox (the extended support release), KMail, the full LibreOffice suite, GIMP, digiKam, Dragon Player, VLC and the Konsole terminal emulator. The only applications I missed were a password manager and a torrent client.
openSUSE 15.1 -- LibreOffice Writer, VLC and system information (full image size: 267kB, resolution: 1366x768 pixels)
openSUSE's Plasma desktop comes with two graphical applications for managing software: Discover and YaST. I was not overly impressed with Discover. I found the navigation a little awkward and applications were listed in random order. To give an example, when I opened Discover the first three applications that were presented to me were GNU Emacs, GNOME Tweaks and Simple Scan - I doubt the average user will want to install any of those applications; GNOME Tweaks won't tweak Plasma and there is already a KDE scanning application installed (Skanlite).
Another is that Discover failed to install Flatpak applications. I could enable the Flathub repository via Discover's settings menu but installing Flatpaks didn't work, for no apparent reason. Discover would typically show it was installing an application (and sometimes causing a high system load) and then quietly fail.
openSUSE 15.1 -- Discover busy not installing the Sublime Text flatpak (full image size: 311kB, resolution: 1366x768 pixels)
The YaST software manager is more traditional and more advanced, although it doesn't have support for Flatpaks either. For "normal" applications YaST worked much better though. For example, Discover listed just three web browsers in the category "Internet > Web Browsers" (Firefox, Falkon and SeaMonkey). YaST showed many more browsers, including Chromium and Konqueror.
Interestingly, the set-up instructions for openSUSE on the Flathub website state that "Flatpak applications can only be installed using the graphical Software application on either Tumbleweed or Leap 15.0 and later". Perhaps the site means Flatpaks only work with the GNOME Software application as, speaking generically, I found the opposite was true: the graphical software managers didn't handle Flatpaks but I could install them via the command line just fine.
openSUSE 15.1 -- Sublime Text as a Flatpak (full image size: 326kB, resolution: 1366x768 pixels)
Speaking of the command line, you can also manage software via zypper. I found zypper easy to use and, compared with Fedora's DNF, relatively fast.
By default openSUSE doesn't ship with proprietary codecs but, as with other distros, you can install them by enabling a third-party repository. For openSUSE, the place to go is the Unofficial Guide to openSUSE Leap. You can either click a button to get your codecs via YaST or copy and paste a couple of zypper commands.
YaST and Snapper
YaST is a graphical front-end for working with settings and services that require admin privileges. Options include everything from managing software to partitioning and configuring the firewall. I personally didn't find YaST particularly useful. I don't, for instance, need a graphical interface to view the output of systemctl and journalctl commands, and I am used to working with firewalld on the command line. I did use YaST to try to get my printer to print and the utility was fairly helpful; it did various checks before pointing me to the /var/logs/cups/error_log file (which, unfortunately, didn't solve the issue - I needed to install a driver from the manufacturer. The driver isn't available for openSUSE, and manually installing the RPM failed because of dependency issues).
In general, I find YaST useful as an extra layer of protection. It is all too easy to break things when administrating an operating system, in particular when you rely on information from some random website that may be incorrect or out of date. YaST's graphical interface will prevent many such blunders. I am glad YaST exists and after using openSUSE for a week it seems odd that other distros don't have a similar settings menu.
I was more interested in Snapper, which is openSUSE's tool for managing Btrfs snapshots. You can use Snapper to create snapshots of your Btrfs file system, check differences between snapshots and roll back unwanted changes. How this works is best illustrated with an example. As a test I installed Apache and PHP and created a simple PHP file on my localhost to confirm that everything was working correctly. I then wanted to change some settings in Apache's configuration file. As that is a risky operation I first created a "pre" snapshot:
# snapper create --type pre --print-number --description "Before php.ini tweaks" --cleanup-algorithm number
The --print-number option returns the snapshot ID (in my case 48), which you need for the "post" snapshot. I then edited the config file and took the "post" snapshot:
# snapper create --type post --pre-number 48 --description "After php.ini tweaks" --cleanup-algorithm number
After restarting Apache I found that - surprise, surprise - I had broken my localhost. Instead of displaying PHP files Apache suddenly asked me what I wanted to do with the PHP file I had requested (i.e. open it in Kate or save it to the disk). Running "snapper diff 48..49" quickly revealed the issue: I had disabled PHP support by changing "engine = On" to "engine = Off". To undo that change I could simply run "snapper undochange 48..49" (and reboot the system).
openSUSE 15.1 -- Using Snapper to debug an error in Apache's php.ini file (full image size: 285kB, resolution: 1366x768 pixels)
The same way I could roll back system updates we can also use Snapper for the home directory, which is part of my Btrfs root partition, I first needed to create a config for "home" (using "snapper -c home create-config /home"). After that I could take snapshots of my home directory and undo any changes I made.
The examples just scratch the surface of Snapper but I hope it demonstrates just how powerful the tool is. If you want to find out more, a good place to start is the Snapper portal on the openSUSE wiki.
Transactional server (with a desktop environment)
I mentioned earlier that there are two Leap server versions that can be installed via the ISO: you can deploy either a standard or transactional server. The latter uses Btrfs and Snapper to provide transactional (also known as "atomic") updates that can be rolled back should anything go wrong. Put simply, instead of updating packages on the running system updates are applied by creating a new snapshot and you can then boot into the new snapshot (or roll back to a previous one). It is similar to what Fedora is doing with Silverblue (which I wrote about last year) but there are a few differences: openSUSE's transactional server doesn't use rpm-ostree, and zypper is still used in the background as the package manager (in Silverblue Fedora's DNF package manager has been removed completely).
Another difference is that Silverblue is focused on the desktop, whereas openSUSE's transactional server is very much focused on servers (the clue is in the name). However, I thought it would be interesting to install the transactional server in GNOME Boxes and then install a desktop environment. As my test laptop has only 4GB of memory I decided to install the relatively light-weight MATE desktop:
This will install everything you need to get a working desktop environment. You may need to make sure that the target unit is set to "graphical" (the old runlevel 5) and you probably want to disable automatic updates/reboots:
Once you are up and running you can update your system with "transactional-update up". Installing packages is done using "transactional-update pkg install <package>. For instance, as a test I installed the Leafpad text editor with "transactional-update pkg install leafpad".
When you install a package a new snapshot is created. To start using the new snapshot you need to reboot your machine.
openSUSE 15.1 -- Leafpad installed on the transactional server (running the MATE desktop) (full image size: 226kB, resolution: 1366x768 pixels)
I didn't come across any unexpected issues while running the MATE desktop on top of the transactional server. One thing to be aware of, though, is that the YaST software manager won't work. After I had installed Leafpad the software manager correctly listed the application as being installed but trying to remove it triggered an error (as the command "zypper remove leafpad" no longer works).
openSUSE 15.1 -- Trying to uninstall Leafpad via YaST's software manager (full image size: 86kB, resolution: 1366x768 pixels)
I have no idea if openSUSE has any plans for building a transactional desktop operating system. I would certainly be interested - it was a lot of fun!
Leap 15.1 is a relatively minor upgrade from 15.0. As the Leap 15.x series will be supported for another two years the software will slowly get more out of date. Both the kernel and systemd version in Leap 15.1 are the same versions that were used in 15.0, though some graphics hardware support has been ported from the 4.19 kernel to openSUSE's 4.12 kernel. The Plasma desktop was bumped to a slightly newer version, while the GNOME desktop is still stuck at 3.26.2. Of course, this is not a criticism. I am only pointing out that Leap is very much a distro that aims to be stable and reliable. If you want more up to date software then you may want to consider Tumbleweed.
The distro itself is indeed rock solid. The only real issue I encountered was that I couldn't resolve the issue with my printer. That is not something openSUSE can be blamed for but it is worth noting that a smaller distro such as openSUSE may not be on the radar of companies that write proprietary drivers.
In general, I feel there are a few things that could be improved: I was unable to install Flatpaks via the graphical software managers; it is annoying that I have enter the password to decrypt the hard drive twice during the boot process and the upgrade from 15.0 to 15.1 involved quite a bit of manual work. Other than that I was very happy with openSUSE Leap.
Most of this review was about the features that make openSUSE stand out from the crowd: YaST, Btrfs and Snapper. YaST is a tool that really should be adopted by other distros - the option to perform various advanced administrative tasks via a graphical interface is fantastic. The Btrfs file system and Snapper worked perfectly fine and I found it easy to get started with snapshots.
Because of openSUSE's many unique features the distro does have a fairly steep learning curve. That is all the more true for the transactional server, which builds on top of Btrfs and Snapper to enable atomic updates. Thankfully, I found that, by and large, openSUSE's documentation is excellent.
Finally, if you are interested in openSUSE then you might want to listen to episode 122 of the Destination Linux podcast - it features a long interview with Richard Brown, who is the distro's chairman.
* * * * *
Hardware used for this reviewMy physical test equipment for this review was a Lenovo Z570 laptop with the following specifications: