I've just learned about Fedora Silverblue. It's website doesn't really do a great job at explaining what this project really is. A quote from Fedora Magazine helps a bit:
Silverblue is a codename for the new generation of the desktop operating system, previously known as Atomic Workstation. The operating system is delivered in images that are created by utilizing the rpm-ostree project. The main benefits of the system are speed, security, atomic updates and immutability.
The installation was super easy. I just downloaded the ISO file and attached it to my VM. There is a graphical installer that has only a few steps. Disk encryption worked without a hiccup.
With Silverblue you can install tools globally with Flatpak or with
Set up Flathub by going to flatpack/Fedora and clicking on a "Flathub repository file" button. Now you should be able to find applications from Flathub using "Software" application.
rpm-ostree is used to update the system but also to install overlay packages globally.
$ rpm-ostree install golang neovim emacs fish
The changes will be applied only after a system reboot. Luckily, there seems to be an exprimental way to apply the changes immediately:
$ sudo rpm-ostree ex apply-live
I used packages for the search. Maybe there is a better way 🤔.
Toolbx is a container which could be used for exprimentation and installing packages without affecting the system.
# Start a container
# Inside toolbox you can use dnf to install packages
$ dnf install java-11-openjdk
All packages that you install inside toolbox are not available to the system globally.
# List local toolboxes
$ toobox list
By default dnf and rpm-ostree install the latest version of the package. In some cases I want to install an older version of the package. It is possible by using modules.
# List available modules
$ dnf module list
# Install the module
$ sudo dnf module install nodejs:14/default
$ node --version
$ npm --version
rpm-ostree has an experimental way to install modules globally. Unfortunately, it didn't work for me.
$ rpm-ostree ex module enable nodejs:14
I couldn't get Peek to work but luckily there is a Kooha for screen recording that just works!
You can change default shell with:
$ sudo usermod --shell /path/to/shell <user>
Availability of software I use
Table created on 2022-01-10
|Name and Version
|Availability on Fedora
|Ansible:2.9 and Ansible core:2.11
|I don't fully understand the separation into ansible and ansible-core. Perhaps, ansible-core will be enough for me use case.
|Firefox comes installed
|Can try Gnome Boxes
|I'd like to switch to podman which comes preinstalled.
|Let's hope that podman and podman-compose can simply replace docker.
|Install only if system starts to hang.
|I don't need 1.17.
|Install a Node 14 module
|Comes with NPM 6.
|Install it from official repo
|rust:1.57 and cargo
|Install it from official repo
|Looks the same as for packer
|This is a bit outdated.
This website helps with finding the right packages for developer tools: https://developer.fedoraproject.org/tech.html
I probably don't need to install all those tools globally. I should try scoping them with the toolbx.