In my free time, among other things, I also try to do some Game Development. Finally, for the project I’m working on right now, I will be able to do everything using FOSS (Free Open Source Software), which is a great personal achievement -at last I’ve found each tool for each task in the Open Source realm-.
This development takes lots of time as it goes at a very slow pace, depending on the available free time slots assigned to game development, therefore, I never (2 games completed, 1 on the works) got to complete a project before a Linux Distro releases a new version. This releases are always a pain in the but. I’ve been using Ubuntu for the past years, and each release update ended up in an unusable system that required to perform a clean install. I tried with Fedora Workstation to end up in the same situation. This means that each OS update is somewhat feared, more due to the hassle of updating the distro, realizing the update went wrong, download the new version, perform a clean update keeping the data, and the time needed to complete the process, than due to the problem solving issue; had I have more time, hassle drops. So when someone on Twitter pointed out that I could try to go with Fedora Silverblue, curiosity, which is one of the features that defines humans, draw me to do some research on that as I never heard about Fedora Silverblue nor OStree before December, 2nd 2019.
Thus I went to VirtualBox, create a Silverblue VM and start the testing prior to going Bare Metal with Silverblue, where I’m right now. The fact that the OS is immutable, software is installed as flatpaks, OS has rollbacks to previous states… presumably looks like a nice path to follow in order to update without getting any rash each time an OS update appears around the corner.
Actually, as it’s said, it is still under heavy development, though stable enough for everyday use, so some issues might appear. Maybe that is why I couldn’t find much info, or many reviews on Silverblue yet, only some light insights on the web, some videos on youtube, each talking about some small topic (different users have different needs), some questions on the fedora forums, not that much info around on Silverblue, so this is uncharted territory for me to discover, at least for the time being… Who said fear?
My “basic” computing needs are very simple, just need some software working, Godot, MyPaint, Gimp, Inkscape, Blender, Builder, Glade, SQLite, Python, Scribus, Makehuman, Manuskript, LMMS, Musescore, VSCode, LibreOffice, some utilities, some CAD, some mail, web and instant messaging, SMB filesharing, and network printing/scanning, and last, Dropbox and PCloud.
First things first. Installing Silverblue.
While I have yet to install Silverblue in the triple boot scenario I use mostly (Linux + Haiku + Windows), I did install plain Silverblue as single OS on some devices (HTPC, old laptop and old tablet) with the default installation setup, which is, not touching anything regarding drive partitioning. No problems there, also because storage in those devices is limited, 128 – 160 GB, so I let Silverblue do the partitioning math.
Prior to go bare metal, I did some installation testing on VM, knowing, of course, that VM is a lot different than real BM. And of course, following the documentation available (RTFM…). Tablet and HTPC have 4 GB RAM, 128 GB HD on the tablet, 120 GB on the HTPC. In these cases I just let Anaconda do the math with partitions which resulted in:
- EFI partition
- /boot partition
- LVM with / volume
The laptop is an old one with broken DVD reader, battery is broken too (can be used only plugged in), and arrow keys are… hum… not fully functional. With this I did some experimentation, and did the partitioning myself:
- BIOS partition
- /boot partition
- LVM with / volume and home volume on /var/home
In all cases installation went fine, and the outcome at first run was this:
Silverblue’s install is quite plain. No bloat, just needed soft there. I must agree greatly with this approach which allows me to install software, the one that I need for each use case, instead of removing unwanted stuff. Therefore, for the HTPC, just installed Kodi and Gnome Weather, as it is going to be used as, you know, an HTPC. The laptop only has LibreOffice, and Evince, as it’s used only for projecting Powerpoints and viewing PDFs at meetings. It also has Gparted as a layered package just in case of needing to tweak a hard drive.
Tablet has MyPaint, Inkscape and Xournal++ as main apps, because it’s used for taking notes and sketching stuff for the game development.
The BM I’m using to write this article has a different partition approach as is the dev box, so it has 8 GB RAM, a 250 SSD HD, a 1 TB HD, and a 4 TB HD (split in 2, for backup). So after reading docs and FAQs, I decided to go with my “own” partition scheme, abiding the advise provided by the guys at Silverblue:
- EFI partition
- /boot partition
- LVM with / and /var/home (with different sizes for / and home than the ones assigned automatically by anaconda)
- No swap
- Once boot the first time, the non SSD drives where formatted
The development I do for now, if you can call it development, does not need big amount of ram, so I don’t see the point of having some swap there. In case I ever need more, I will go and get another 8 GB DIMM… but as I said before, at this “development” pace… it’s going to take some time.
I will update this when I do the triple boot setup, because that, I presume, will be fun to do. I did test dual booting Silverblue and Haiku on the old laptop:
I didn’t have any issues related to this setup, though I first installed Silverblue, leaving space for the Haiku installation, then modified Grub config files accordingly, after installing Haiku, in order to be able to boot Haiku too. A complete different story would be if there is already an OS installed in UEFI mode and Silverblue is to be the second one.
We will see what happens once I do the triple boot.
After adding the Flathub.org repository to install software, went shopping and installed all the software I need as flatpaks but Makehuman, Manuskript and LibreCAD/QCAD, all through the Software app.
I also have some layered (rpm-ostree install packageName) packages, Gnome-tweaks, Gparted, Epiphany, Variety and the fedora-workstation-repositories. These, because there is no flatpak of Gnome-tweaks, Gparted and Variety, and Epiphany, because in order to install web sites as web apps, it’s only available in the non-flatpak version.
Installing layered packages usually needs a reboot to have them available, but you can keep installing layered packages until you have everything you need and the reboot, which is better than rebooting each time. Someone said that hopefully, in the near future, installing layered packages won’t need a reboot, even it seems that there is already a workaround, but I have other priorities right now.
Something that needs some improvement, regarding the layered packages, is that, for example, I use quite some fonts to do some graphic design and these fonts install as layered packages, I would rather have a single Fonts package where I add the fonts I need:
After adding some 20 or 40 fonts,
rpm-ostree status will need some scrolling just for one deployment.
Not everything I need is yet available through flatpaks, and some devs don’t do flatpaks, so most likely, unless some third party does de packaging, there will never be. Some are available as AppImages, or Snaps, but not as flatpaks, so we users are again caught in the packaging wars, .deb vs .rpm vs .tgz vs .apk vs .pisi vs .pup…
On the other hand, some things are not working yet, at least as I expect them to work, so beware that this is a personal perspective:
- Can’t watch some videos on Firefox
- Can’t get Dropbox to work properly
- Can’t get PCloud to work properly
- Onscreen keyboard does not show automatically on the tablet once the keyboard is detached
- Can’t connect to an SMB share (can do through FTP though)
- Can’t scan over the network, scanner is not available (and can’t install the hplip scanner plugin)
- Gnome Screenshot (the flatpak, does not make sound, I use it in interactive mode as default PrintScreen button)
There are things that I haven’t had the time to properly test them, and even some of the ones that I found not to work seem to have some sort of fix, some of them involving adding repositories, which I understand break the idea behind the Silverblue philosophy (am I wrong here?).
Besides, I’m having some issues mounting the partitions on the other drives. Lack of knowledge, I presume, as I am quite certain that the issue is related with mount options I have yet to figure out in order to get the partitions mounted without asking for password each time.
Also I haven’t talked at all about the Toolbox, though I did try it to “create” a development environment, adding packages with dnf, and adding them to the Gnome Shell by means of creating some desktop file for the package inside the toolbox, so I could launch said software inside the Toolbox from outside the Toolbox, adding some color layer to the icon to differentiate the “Inside Toolbox” software from the “Outside Toolbox” icon.
Final thoughts, for now…
So far, half good. I like the idea of the immutable OS, where the system updates as a whole and keeps some prior states to rollback if some update goes wrong. Also the idea behind flatpak, appimage or snap is good, though I would rather all of them would find a common ground to agree on just one single package format that would merge all the good points of each and leaving behind the bads.
Toolbox containers look nice, though with my lack of experience I presume I can’t get much out of them. I think good developers would find it more appealing and useful than I do for now. I might end up using it more often in the future, who knows.
When I think about the goals of Silverblue’s approach, I imagine that after installing the OS, everything works, and some things don’t do yet. In my case, Dropbox/PCloud is a must, as instead of using Google calendar I created a calendar and host it there to be used by Gnome Calendar everywhere, of course, hoping that in the near future a Linux phone would be available, and there they are, the Librem 5 and the Pinephone.
Well, we have to take into account that Silverblue is still a Work In Progress, and that progress is, ehem, progressing… thus it will become better in the near future. IMHO, I think fonts could be installed in a different way instead of being a layered package for each font.
I hope that I will get those issues fixed in the next weeks, so I can use the BM for its purpose. Fingers crossed for when I go back to the game development with Godot, wish nothing bad happens then.
Multilanguage support has been always flawless with Fedora, and is still with Silverblue. Adding Chinese and Russian in Ubuntu is always a pain in the but, which ibus table add through apt, synaptic…, in Fedora, just add it, it works, easy, period.
The 2nd part will be added once I get the triple boot working, and for now, the plan is to install Silverblue (using the Ubuntu drive), with its own EFI partition, then install Haiku, and add the Windows (already installed along Ubuntu) EFI stuff into the Silverblue EFI partition, then select the Fedora Silverblue HD EFI as the boot drive in the BIOS. We will see if this plan works out well, or I end up hitting my head against the wall. Yep, I know, backup.