Installation
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.
Configuration
With Silverblue you can install tools globally with Flatpak or with rpm-ostree
.
Flathub
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
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 🤔.
Toolbox
Toolbx is a container which could be used for exprimentation and installing packages without affecting the system.
# Start a container
$ toolbox
# 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
Modules
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.
$ toolbox
# List available modules
$ dnf module list
# Install the module
$ sudo dnf module install nodejs:14/default
$ node --version
v14.18.2
$ npm --version
6.14.15
rpm-ostree has an experimental way to install modules globally. Unfortunately, it didn't work for me.
$ rpm-ostree ex module enable nodejs:14
Misc
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 | Notes |
---|---|---|
Ansible:2.10 | 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. |
Chromium | Chromium | |
Emacs:27 | Emacs:27 | |
Firefox | Firefox comes installed | |
IDEA Community | IDEA Community | |
KeePassXC | KeePassXC | |
Virtual Box | Can try Gnome Boxes | |
Remmina | Remmina | |
Telegram | Telegram | |
VLC | VLC | |
aspell | apell | |
aspell-en | apell-en | |
docker | docker | I'd like to switch to podman which comes preinstalled. |
docker-compose | docker-compose | Let's hope that podman and podman-compose can simply replace docker. |
earlyoom | earlyoom | Install only if system starts to hang. |
fd:8.3 | fd:8.2 | |
fish:3.3 | fish:3.3 | |
go:1.17 | go:1.16 | I don't need 1.17. |
OpenJDK 11 | OpenJDK 11 | |
neovim:0.6 | neovim:0.6 | |
nginx | nginx | |
Node 14 | Install a Node 14 module | Comes with NPM 6. |
maven:3 | maven 3 | |
packer | Install it from official repo | |
Python 3 | Comes preinstalled | |
rustup | rust:1.57 and cargo | |
Slack | Slack | |
Syncthing GTK | Syncthing GTK | |
sqlite 3 | sqlite 3 | |
terraform | Install it from official repo | Looks the same as for packer |
tig | tig | |
tree | tree | |
zola:0.14 | zola:0.12 | 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.