Vanilla Handbook
handbook.vanillaos.org
handbook.vanillaos.org
Vanilla OS is an immutable and atomic Ubuntu Linux-based Point Release distribution, that receives updates at the right time, neither before nor after, without sacrificing security and functionality.
-- Gandalf the Grey
I'm a Silverblue guy right now, and that has largely cured me of distro hopping, but NixOS and Vanilla continue to tempt.
I managed it by clicking on the How to Install guide and then on the download image link.
On a side note half the time I don't even understand what the project is. The descriptions are often buzzwords sandwiched in untethered abstractions.
Are all applications run as sandboxed containers or something?
If so, do they natively support switching between multiple versions of, say python?
In-line Edit: if they do, awesome, how about drivers and say CUDA?
More importantly, does it break the usual install scripts of packages and require special handling OR do things just work?
I'll do my best. An immutable OS has a set of core features which are updated with a way to roll-back if the update fails. The idea is that the core doesn't generally get touched by users or even the administrators. All user or server software will be installed in some sort of container.
> Are all applications run as sandboxed containers or something?
Yes, for some definition of container. For example, Fedora Silverblue uses podman to install OCI containers for server work, toolbx (a wrapper around podman) to setup CLI tools with access to the home dir, and use flatpak for GUI applications.
> If so, do they natively support switching between multiple versions of, say python?
My understanding is that you can write your own bash aliases to do that.
> In-line Edit: if they do, awesome, how about drivers and say CUDA?
Typically your drivers are going to be managed by the "core" of the OS so you won't be swapping those out.
> More importantly, does it break the usual install scripts of packages and require special handling OR do things just work?
My understand is this depends on how you set things up. - If you add something to the immutable core, it will come from a package manager. - If you install a cli application in a container it will not update itself. - Flatpak will provide updates. - full on containers such as podman/docker do their own thing.
Substantively, it's a difficult question to answer because there are multiple ways of accomplishing it, if I understand Vanilla correctly. In Silverblue and, I believe, macos, the operating system is a read-only image (probably ChromeOS too, but I don't know that): changing the operating system means dropping a new image on your drive, without messing with the bits that are mutable (/home and /var, in the case of Silverblue. You can layer applications directly on the OS layer in Silverblue, but it's not ideal -- though it's leading to some fascinating projects like ublue (https://ublue.it/), in which you can branch an OS image at github, customize it to your liking, and use github features to continuously update your image so that you have a custom but immutable, auto-updating operating system.
edit: did not see that sibling pointed them out allready
> Vanilla OS is an immutable and atomic Ubuntu Linux-based Point Release distribution, that receives updates at the right time, neither before nor after, without sacrificing security and functionality.
I have no clue what any of that means. And why should I care?
- Atomic: Upgrades and downgrades to the OS are performed as whole releases that contain all package changes, instead of individual upgrades to packages. The OS is not designed for the user to accept only part of an OS upgrade. Userspace software is handled separately.
- Receives updates at the right time: The OS is not a bleeding-edge distro that adopts new software before it is stable enough for mass consumption. The OS is also not a stability-oriented distro that hangs on to old LTS versions of software as long as it can.
Vanilla OS seems to be targeting users who want a low-maintenance Linux distro that uses Flatpak, Snap, or AppImage for userspace software. If this is something you're into, then you should be interested.
https://handbook.vanillaos.org/2022/12/10/install-additional...
From what I understand, the Linux kernel version is tied to the Vanilla OS release and can't be changed outside of upgrading or downgrading the OS.
I love that this trend is catching on because I'm a fairly recent convert to Silverblue and I think all distros should do this.