But first let’s clear up a few notions that the apt users might be unaware of.
OS Updates and Package updates
In Debian based distributions, like Ubuntu, we often run apt update && apt upgrade -y and this command accomplishes two things.
- Update the base operating system by applying security and performance patches to the core operating system among other things.
- Update the user level software like update your text editor, media player, web server among other things.
Notice, it doesn’t “upgrade” your system. So if you are using Ubuntu 16.04 running apt upgrade would not upgrade your system. It just applies maintenance and security related patch to the system.
On systems like Fedora Atomic, things work differently. First of all, the operating system level patches and updates are managed separately from user software. Secondly, new features are being constantly rolled out and you can choose to incorporate them into your system, if you wish to. The updates aren’t like that of, say, Ubuntu, which releases new versions on a six-month schedule or so.
Your operating system continuously sees new updates, hence the term, “Atomic”. The userland applications, on the other hand, are kept clean and up-to-date using the flakpak as a way of installing and updating applications. Flatpak uses containers to run applications.
But that’s not all! The people behind atomic project understand that not every application can be run in containers which is what flatpak uses. Things like drivers and certain file systems and other low level system software require to be installed system wide, most likely with loadable kernel modules. You can install these directly using rpm-ostree utility as you would install an app using apt, dnf or rpm.
This hybrid approach is what gives Atomic project its unique purpose in the market.
So to sum it up:
- rpm-ostree : Manages OS-level updates and system-wide applications. Also used for installing optional system level software like drivers, kernel modules, etc.
- Flakpak : Manages applications with each application running in a different container
Now, we are ready to dive into the review the Fedora Atomic WS.
1. Initial Impressions
Installing the system was a breeze. It is identical to installing vanilla Fedora 28 on your system. The Fedora 28 version used for this review came with a pretty up-to-date version of Gnome 3.28.1 as a desktop manager.
The base OS also came pre-installed with Docker version 1.13 which is still pretty far behind the official release but it is a good to have Docker pre-installed anyways. All in all, a great starting point. No additional packages like Libre Office or other heavy packages were included in this distribution.
A basic gedit application as text editor, few graphical utilities for managing system settings and installing and updating software and of course Firefox for browsing the web were included. Regular Gnome users will not be disappointed by experience.
2. Installing OS Upgrades
The idea behind rpm-ostree’s update model is that the base OS system doesn’t change. It is immutable. Any package or OS upgrade is noted as an addition on top of this image (even when certain modules are removed) and if you decide that this new modification doesn’t work for you, you can rollback to that pristine working image which you were using before.
Run the following command to check your OS version:
The following will upgrade your system:
And once that is done, run the following status command again to see what versions are available to you:
You can see that there are two options. It also shows layers packages, the system wide packages that we talked about earlier.
To install such packages run:
If you want to rollback, simply enter:
Even the boot menu would give you the option of booting into different versions that are available as the part of your rpm-ostree deployments. On the OS management frontier the Atomic project has hit the mark. You can discover more cool features like auto-updates, cleanups and much more.
3. Installing and managing apps
The third-party apps like Steam and VS code are shipped as flatpaks. This is where things start to get a little messy. Flatpak has its own repo FlatHub from which pretty much any mainstream Linux distro can download packages and run it on the host machine.
But Fedora doesn’t have the repository preconfigured for the users and it is upto the user to discover FlatHub and configure flatpak to install the packages from there.
We had to visit this page, click on FlatHub repo file and install it using the Gnome software utility which (thankfully) automatically popped up. After this initial hurdle, installing software is relatively easy. For example, we managed to get Steam running by simply using:
Not all applications followed this rule though, for example, while installing Visual Studio Code, we had to do the following:
This information was provided by this helpful page. So in terms of package management, Atomic is still very rough and difficult to use.
Though it may have its heart in the right place with the use of containers whenever possible, it misses the mark by quite a large margin. It doesn’t even come close to the ease-of-use that apt users are accustomed to,
If you are develop server side applications, you might want to look into OpenShift which comes pre-installed and like Flatpak can be used to run isolated and disposable environments. But the different is that, it is meant for developers trying to emulate the production servers on their Workstations.
In terms of performance, little has changed from vanilla Fedora 28. The only major bottleneck seems to be the disk IO, especially when the system is undergoing an upgrade (which it does quite often). This because of the OSTree model of Atomic which tries to preserve the base OS image, thereby adding more and more block in different far away location on the disk instead of overwriting the old blocks.
Consider using an SSD if you plan to run this on your main setup. Also you may need to purge older rollback images frequently otherwise a lot of unnecessary data would take up your storage pool.
5. Future Ready?
On a final note, if you are wondering whether you should adopt Atomic Workstation for your set up. You might want to consider the fact that it came to fruition sometime early this year.
It is not yet mature, neither does it support a terrible array of services. Given all these factors, the team has decided to rebrand the project as SilverBlue which would hopefully be a more long-lived project and an example of containers being run successfully on desktop. We are optimistic about its future and will keep you up-to-date with the project’s progress.