Vanilla OS: Promising Idea, Disappointing Implementation

Vanilla OS, a new Linux distribution, has released its first stable version. Unfortunately, the final result is not yet ready for real usage.

I was hesitant to write this piece. However, I was confused after reading a few articles about the brand-new Linux distribution Vanilla OS and comparing them to my personal experience with it.

In addition to applauding stories about yet another new and exciting thing on the Linux horizon, we, as authors, need to give readers a trustworthy and expert evaluation of what we write about. Here’s my opinion on the new kid on the block, Vanilla OS.

What’s Vanilla OS?

According to the official website:

Vanilla OS is an Ubuntu-based Linux point release distribution that gets updates at the right time, neither before nor after, without sacrificing security and functionality.

Vanilla OS is an immutable operating system, core parts of the system are locked down to prevent unwanted changes and corruption from third-party applications or a faulty update.

Vanilla OS
Vanilla OS

And, before you exclaim, “Wow, Ubuntu with a pure GNOME experience,” let me calm you down. You won’t be getting any Ubuntu experience here. Moreover, you will be disappointed if you expect to find any of Ubuntu’s inherent user-friendly tools.

Now, for the most crucial aspect of this new Linux distribution. Vanilla OS is attempting to carve out a space in the immutable operating systems world. But first, let me explain what it is to our readers shortly.

What’s Immutable OS?

An immutable operating system is one in which the base system is fixed and unchanging. In other words, the underlying file system is read-only and cannot be changed. The fundamental advantage of these operating systems is that they are more secure by nature because many attacks and exploits rely on writing or modifying files. So much for that.

How Does Vanilla OS Work?

Leading immutable Linux distributions, such as openSUSE MicroOS and Fedora Silverblue, provide this functionality using various sophisticated techniques. For example, we’re talking about using the features of the Btrfs file system or the rpm-ostree hybrid package system. Each of them creates a manageable amount of layers that provide the functionality to ensure that you can restore the operating system’s state at a certain point in time.

On the other hand, Vanilla OS ensures application isolation by running Ubuntu 22.10 as a Podman container in which apps are installed. In other words, an interesting but relatively superficial approach. To clarify, you will lose everything if something goes wrong with your container.

However, this is only true if you have something workable in that container. Because, as it turns out, installing an application and then hoping it works in this “stable” release is a bit optimistic. However, let’s try installing something trivial, like Firefox.

Installing Firefox

I’ll go over the software installation process in more detail below. Let us focus on the “firefox will appear in your applications list in a few seconds” message. You can wait as long as you like – seconds, minutes, or hours – but Firefox or any other application will never appear on the list. But let’s not be so pessimistic. Try running it through the Vanilla OS Control Center app as a final resort.

Firefox failed starting

So far, with installing apps. Whatever you try to install using APX, the result will be similar.

But things get even worse when you install a command-line tool and then try to use it. You will discover that it does not exist in the system.

Vanilla OS - command not found

Vanilla OS also allows you to install software from Arch’s AUR repository. A dream come true! Until you discover that this is simply achieved by running another container, in this case, Arch Linux, in which the applications are installed.

Vanilla OS Podman containers

And somewhere in there, I felt grateful to the developer for not going further to recollect with N number of openSUSE, Fedora, Void Linux, Slackware, etc., Podman containers to cover the entire range of package formats.

I’m trying to say that application isolation through containerization via Docker, Podman, LXC, or whatever container solution you’re using is at the heart of most of today’s IT. However, when it comes to containers. On the other hand, trying to fit one concept to achieve another is not always successful, as is the case with Vanilla OS.

In this case, we have an operating system that has been attempted to be transformed into a desktop application container orchestrator. Unfortunately, its implementation leaves a lot to be desired.

Nonetheless, this entire concept kept reminding me of something familiar. And all questions were answered when I found that the author of Vanilla OS is also the lead developer on the Bottles project. To be fair – great project!

But obviously, he just chose to expand the concept utilized there into something bigger: a complete operating system with claims of immutability. But, unfortunately, the opposite effect is achieved, leaving a somewhat bitter taste in the mouth.

VanillaOS Immutability

The developer’s view on immutability is quite interesting here. In this case, the operating system is two identical copies of itself in two separate partitions. When successful file system changes are made, the ABRoot tool writes them to the OS copy. If something goes wrong, they are not written, and you can boot from the copy on the disk’s other partition.

While performing a major upgrade between versions, I’ve seen a similar approach with the GitHub Enterprise Server. Then it automatically creates a second partition that copies the current state of the underlying operating system as insurance if something goes wrong and allows you to boot from there. Of course, none of this has anything to do with immutability.

But now, back to Vanilla OS. What if I want to revert the OS state to, say, last Monday? Or to the 8th of August? Basic functionalities characterizing any immutable OS. Furthermore, having two identical copies of the operating system in two equal partitions would be fun if it weren’t for the minimum requirement of at least 50 GB of disk space to do the exercise.

On top of that, while using the ABRoot tool, similar “friendly” error messages abound.

Vanilla OS error message

The above command is not whole, but the existence of uncaught errors hitting the user in the face is hard to accept as anything that has been released as stable.

ABRoot & APX Utilities

As you may have seen, Vanilla OS provides software management to two tools, ABRoot and APX, specifically built for the purpose of the operating system. Unfortunately, there is nearly no technical documentation for their use. It is admirable that they at least describe what they do.

In Vanilla OS, the in-house built APX “package manager” is a wrapper for typical APT, DNF, etc. Using it to install anything in my tests always resulted in the application being unable to run.

ABRoot, as previously said, is a utility that provides “immutability” by copying data from one partition to another. Fortunately, because of it, you can use a standard APT command to install something workable in the underlying operating system.

sudo abroot exec apt install some_package_name

You will be warned that you are doing something dangerous that is only meant for advanced users. A simple APT command?

You’ll be even more surprised to realize that you must reboot the entire system to use the newly installed software. Why? Because it is installed in a mirror copy of the operating system initially. As a result, the distribution must be booted from the other partition to be available, as is the default functionality during a reboot.

Somewhere around here, I gave up on further attempts and invested time and effort into Vanilla OS.

Conclusion

Vanilla OS 22.10, based on Ubuntu 22.10 (Kinetic Kudu), is the first version of this new Linux distribution to be given the “stable” label. The trouble is that there’s nothing stable about it, and the entire experience is filled with issues and features that perform differently than expected.

In this case, you get neither Ubuntu nor an immutable operating system. Instead, you have two identical copies of a standard Linux distribution running Podman containers. In other words, comparisons to enterprise-ready OSs such as openSUSE MicroOS and Fedora Silverblue are inappropriate.

It is a lot of fun to use a script to copy data from one partition to another and install software on-the-fly into a Podman container. Still, it has nothing to do with the concept of an immutable operating system and the approaches to achieving it.

But I can still say something positive about Vanilla OS – its installer. Unlike the widely used Calamares, the developer here has spent a lot of time building its own, entirely based on GTK 4, which I thoroughly enjoyed.

Vanilla OS Installer

Vanilla OS is a good idea; however, its implementation is weak. Of course, the developer’s commitment to the project can only be encouraged and admired. Professionally, though, Vanilla OS is more of a proof-of-concept or homebrew for leisure time enjoyment than a real-world usable operating system.

So it is hard to recommend it for actual use. Or at least at the moment. However, if you decide to give it a shot, feel warned.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Think You're an Ubuntu Expert? Let's Find Out!

Put your knowledge to the test in our lightning-fast Ubuntu quiz!
Ten questions to challenge yourself to see if you're a Linux legend or just a penguin in the making.

1 / 10

Ubuntu is an ancient African word that means:

2 / 10

Who is the Ubuntu's founder?

3 / 10

What year was the first official Ubuntu release?

4 / 10

What does the Ubuntu logo symbolize?

5 / 10

What package format does Ubuntu use for installing software?

6 / 10

When are Ubuntu's LTS versions released?

7 / 10

What is Unity?

8 / 10

What are Ubuntu versions named after?

9 / 10

What's Ubuntu Core?

10 / 10

Which Ubuntu version is Snap introduced?

The average score is 68%

8 Comments

  1. Firefox (from Fedora) turned up immediately for me in the package grid, starts and works just fine. Installed with a simple ‘apx install –dnf firefox’.

  2. Thank you for the review and honest opinion. I think I will wait until it becomes an actual usable OS before I give it a spin.

  3. I felt like this article was written by an AI having been told “write a scathing review of vanilla Linux”.

    Probably my bias as a born English speaker facing so many sentences with the proper words spelled correctly but not actually saying anything that made sense.

    • Hi Dominic,

      Thank you for your comment. The reviews here reflect our personal views – in this case, mine. The internet is already overloaded with laudatory reviews that often avoid focusing on the flaws. However, at Linuxiac, we don’t hesitate to criticize when necessary. AI… really?

      Best,
      Bobby

      • I personally like the review. Something to contradict the singing praises about this distribution, and that they’re quite misleading too. Waiting to see how 2.0 pans out.

  4. Vanilla OS looks really spiffy in the screenshots, and the concept is great. But just as testing with Fedora Silverblue, it sounds good on paper, but using it as a desktop, the concept of an immutable OS is too janky for simple daily use.

  5. This seems very misleading. I will clear one thing before I say anything, I have only used Vanilla OS in the virtual box so I may not be 100% correct about this but this is not how you use any immutable os or at least the vanilla os. You need to initiate a container to install any application through Apx. For e.g. “apx install neofetch”, this command should be written in this format “apx install — ” where in the you specify your package manager from apt, dnf, zypper, etc. In this case, it should be “apx install –apt neofetch”. After that, you can run your newly installed package with “apx run neofetch” or enter the apt container by saying “apx enter –apt” and then type “neofetch’. You can also create a binary and export it and call directly from the shell without going into a container or writing “apx run ” but I have not tried that so will not go into that. Also, coming to your “You won’t be getting any Ubuntu experience here. Moreover, you will be disappointed if you expect to find any of Ubuntu’s inherent user-friendly tools”, Vanilla OS is based on Ubuntu does not mean it will look exactly like Ubuntu or it will have the same user interface as Ubuntu. It means that the codebase of Vanilla OS is developed from the ubuntu’s codebase which itself is developed from Debian. This means at core Vanilla os follows Ubuntu’s update release and will only do major updates if the core codebase of Ubuntu changes unless they decide to follow something else. Both Ubuntu and Vanilla OS offer GNOME as their desktop environment but Ubuntu’s GNOME is a customized version of GNOME, while Vanilla OS offers pure vanilla GNOME out of the box that’s why they both look different. Please do some more research before posting anything bad about anything. I am not being toxic or anything but this is very misleading to those who may want to try vanilla os and reads your article.

    • I meant “apx install package_manager package”. I wrote them inside braces and the blog seems to delete whatever you write inside brackets also I can’t edit the comment. Just wanted to clarify this to anyone who reads it in the future.

Leave a Reply

Your email address will not be published. Required fields are marked *