Ben Chuanlong Du's Blog

It is never too late to learn.

Universal Blue Atomic Linux Distributions

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Universal Blue is a manufacturing process that focuses on community-driven sharing of best practices via automation to make awesome desktop and server operating systems (based on Fedora Atomic distributions).

Good Images

Universal Blue vs Fedora Atomic

  1. Universal Blue Linux distributions are recommened.

    • Universal Blue Linux distributions have "batteries included".
      • provide ISO images with Nvidia drivers pre-installed
      • flatpak is ready to use out-of-the-box
      • ujust devmod to switch to development mode
    • Universal Blue Linux distributions provide an exclusive tooling ujust which makes it easy to managing the operating system.
    • Universal Blue Linux distributions manage update automatically.
  2. Generally speaking, you should NOT manually enable or use RPM Fusion on Universal Blue Linux distributions (Bluefin, Bazzite, or Aurora).

For more discussions, please refer to chat with Gemini .

Switch to the Fish Shell

Install Docker

It is suggested that you switch to the development mode using the following command.

ujust devmod

The development mode has lots of development tools (including Docker) installed.

Update the Operating System

ujust upgrade

rpm-ostree

  1. Homebrew, flatpaks and containers are preferred to rpm-ostree. Use rpm-ostree only when absolutely necessary.

Check System Status

See which deployment you are booted into, which one is pending, and what packages you have layered.

rpm-ostree status

Update the System

This downloads the latest base image updates and keeps your layered packages on top.

rpm-ostree upgrade  # ujust upgrade is preferred for Universal Blue

Search for a Package

rpm-ostree search <query>

Install a Package (Layering)

To install a package directly into the OS (e.g., zsh or neovim):

rpm-ostree install <package_name>

Apply Changes Live (Experimental but useful)

If you don't want to reboot immediately, you can try to apply changes to the live filesystem. This works for many packages but not all (e.g., not kernels). rpm-ostree rollback

rpm-ostree install --apply-live <package_name>

Remove a Package

rpm-ostree uninstall <package_name>

Rollback to the Previous Version

rpm-ostree rollback

Pinning a Deployment

If you have a perfectly working system state and want to save it so it never gets deleted by future updates,

rpm-ostree admin pin 0

Replacing Base Packages

Sometimes you need to replace a package that comes with the base OS (e.g., swapping a driver).

rpm-ostree override replace <path_to_rpm>

Or to reset a package to the default version provided by the OS image:

rpm-ostree override reset <package_name>

Deploy a Commit

rpm-ostree deploy <digest_id>

References

Comments