1. Quick info on Fedora Silverblue
Fedora Silverblue is a spin of the popular Fedora Gnu/Linux distribution, which looks the same, but is fundamentally different in the way it works. There is a clear distinction between system files and user files, the two never mix, it uses a containerized approach to applications by using Flatpak, and the updates are done by deploying an updated copy of your old system.
In fewer words, Silverblue is an immutable OS. The goal of an immutable OS like Silverblue is to keep your system as stable as possible while getting you the newest and greatest updates. The fact that the OS updates work similarly to a git tree means that in the rare case something brakes while updating, you can just revert to your old system as it was right before the update took place.
A disadvantage of this model is that, for now, updating apps that are not containerized requires you to reboot the system in order to deploy the updated version of Silverblue. Flatpak apps and other containers can be updated on-the-fly though.
If you are curious to find more about Fedora Silverblue here are a couple of links:
- Official site where you can download Silverblue
- Article about Silverblue in Fedora Magazine
- My previous article about Fedora Silverblue
2. Ways to install software on Silverblue
There are three main ways of getting software on a Silverblue base.
The recommended way is to use Flatpaks. They are containerized applications, yet integrate seamlessly with the system. They are available to install from the Gnome Software application which comes with Silverblue. Fedora doesn't give you access by default to some of the more popular applications due to licensing issues, but they can be easily enabled by simply clicking a button on Flathub Setup Page. This will give you access to popular apps like Spotify, Slack, Steam, etc.
The second way is through rpm-ostree. This tool allows you to lay traditional packages on top of your Fedora Silverblue install. Installing a package this way, you will generate a second image of your system containing this new package. After rebooting, you'll have access to your newly installed traditional program and in case something went wrong with the installation process you can reboot again to select the previous image without the package.
Creating a toolbox container is the third way of installing software. A toolbox container uses streamlined Fedora 32 as a base and it gives you all the features of a normal Fedora install while integrating with your Silverblue system.
3. How to install Brave on Fedora Silverblue
Brave is not yet packaged as a Flatpak, but there are ongoing discussions to adopt this format. The main problem is that it's based on Chromium which was always a pain to package into any format for years now.
We can get our hands dirty though and install Brave through any of the other two options that Silverblue gives us.
3.1 RPM-OSTREE (the git for your operating system)
While rpm-ostree supports some traditional repositories the only ones that are tested for 100% compatibility are the ones provided by the Fedora team. What I'm trying to say is that adding the Fedora repository for Brave as the team suggests on their site won't work on Silverblue. That tutorial is only for the normal installations of Fedora.
rpm-ostree has another disadvantage: you will need to manually update your Brave Browser when a new version comes out by downloading the release file from their GitHub page.
The advantages of this method are low overhead and easy integration with the rest of the system.
To install Brave using this method follow these steps:
Go to the GitHub page with their releases and find the release that suits you best. I recommend the beta version because it's 99% stable and it doesn't require brave-keyring. Due to brave-keyring dependency, you can't install the stable version on Silverblue using this method. Usually, the title for the beta version is Desktop Beta Channel. At the bottom of the Section with the Desktop Beta Channel title, you have an Assets section.
Click on that section and download the file with the .rpm extension. It should look similar to this: brave-browser-beta-1.12.82-1.x86_64.rpm.
It's time to get our hands dirty now. Let's open a terminal and navigate to the file we just downloaded.
My file is in the Downloads folder so I'll typecd Downloadsand thenlsto verify that the file is actually there.
Now comes the simple part. Just run
rpm-ostree install brave-browser-beta-1.12.82-1.x86_64.rpm. Obviously, if you downloaded another version, use that one instead. Just let the process finish and then reboot your system.
After updating your system you should see the Brave Browser icon in your application menu.
3.2 Toolbox container
The third way to install software, using toolbox, introduces some overhead because it will install a base image of normal Fedora 32 on your system. This won't be an issue for most people though since storage comes so cheap nowadays.
We get our hands dirty from the start and open a terminal. The quickest way to create a toolbox container is by running
toolbox create -c Fedora32. When asked if you want to download the Fedora 32 image respond withyand then let it do its magic. Finally, we should enter the new container with the commandtoolbox enter --container Fedora32.
Now we are basically inside a normal Fedora 32 install and we can use it likewise. We can go to the Brave Browser website and follow the instruction they give for installing the Linux version. This time I'll be installing the stable variant of Brave. The official instructions follow:
sudo dnf install dnf-plugins-core
sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
sudo dnf install brave-browserAfter installation is completed you can run
brave-browserto start the actual program.
We have the browser installed, but it still doesn't appear in our applications menu. To make it appear we need to create a .desktop file that will tell our OS to start the container and start Brave Browser when we click on its icon.
Download the icon from here and place it into
~/.local/share/icons. If theiconsfolder doesn't exist, just create it. To be able to see your.localfolder when downloading the file just right-click in the file explorer dialog and select Show hidden files.
Open your text editor and write the following:
[Desktop Entry] Name=Brave Toolbox GenericName=Web Browser Keywords=Internet;WWW;Browser;Web;Explorer Exec=toolbox run -c Fedora32 brave-browser Terminal=false X-MultipleArgs=false Type=Application Icon=brave-release.svg Categories=GNOME;GTK;Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall; StartupNotify=trueSave this file as
brave-release.desktopand save it in~/.local/share/applications/.
You should now have two brave browsers if you followed both tutorials. The advantage of the toolbox version is that you can update the browser just by entering the container and running a simple sudo dnf upgrade command.
The Brave on the right was installed through rpm-ostree and integrates better with the system at things like following system themes, colors, and icons, while the Brave on the left was installed through toolbox and can be updated more conveniently.
Ending thoughts
Don't get the wrong impression about Fedora Silverblue, most software is available through Flatpak or can be installed with rpm-ostree without having to search releases in GitHub repositories.
I highlighted the install process for Brave because it's one of the few tricky apps to get running on Silverblue due to its Chromium origins. I hope this guide will help you get your favorite browser installed on Silverblue or any other app that you might have trouble with. Usually, if everything fails, a toolbox container should successfully install anything that a normal Fedora system can.
What are your thoughts on Silverblue and the app install process for those rare specimens like Brave Browser? Let me know in the comments!