Introduction to Fedora Silverblue
Fedora Silverblue 1 is an immutable desktop operating system based on Fedora Linux distribution. What immutable does mean is that most directories including rootfs (/) are mounted as read-only, and user applications run in an isolated execution environment. It is a part of Atomic Host project, and share the same underlying system with Fedora CoreOS (FCOS).
For this purpose, Fedora Silverblue adopted two technologies:
- libostree (OSTree)
- Flatpak
libostree 2 #
libostree (previously called OSTree) provides git-like model for managing bootable filesystem trees (binaries), along with for deploying them and managing the bootloader configuration. By using libostree, a filesystem commit (image) can be used to boot Linux, making it easy to upgrade, rollback, and manage the filesystem. To make it feasible, the filesystem is required to be always clean (without users’ configurations, etc); hence most directories are mounted as read-only.
However, according to Linux Filesystem Hierarchy Standard (FHS) 3 , toe rootfs must have:
- /bin : essential command binaries
- /boot : static files of the boot loader
- /dev : device files
- /etc : host-specific system configuration
- /lib : essential shared libraries and kernel modules
- /media : mount point for removable media
- /mnt : mount point for mounting a filesystem temporarily
- /opt : add-oin application software packages
- /run : data relevant to running processes
- /sbin : essential system binary
- /srv : data for services provided by this system
- /tmp : temporary files
- /usr : secondary hierarchy
- /var : variable data
- /bome : user home directories (optional)
- /lib<qual> : alternate format essential shared libraries (e.g. /lib64 , optional)
- /root : home directory for the root user (optional)
some of which can be modified by legacy packages (deb, rpm). To satisfy the FHS while keep the rootfs clean, Fedora Silverblue makes symbolic links for writable directories, such as /home to /var/home .
In Fedora Silverblue, the filesystem is immutable and stateless, and all runtime state is written and stored in /var :
- /home -> /var/home
- /opt -> /var/opt
- /root -> /var/roothome
- /usr/local -> /var/usrlocal
- /mnt -> /var/mnt
- /tmp -> /sysroot/tmp
This approach (making the rootfs read-only) is not new; Android 4 , ChromeOS 5 have also been deployed with read-only rootfs. They also uses Linux as their base system, however, Fedora Silverblue is one of the first Linux distributions that provides Linux desktop environment with read-only rootfs (another one is EndlessOS).
Note that Fedora Silverblue uses rpm-ostree , a modified version of libostree, but in this post I will say the fundamental properties of libostree only.
Mouting the specified rootfs image by libostree #
So, how libostree mounts the rootfs read-only when booting the Linux kernel? libostree’s customized initramfs parses kernel command line arguments ostree= , and mounts the specified rootfs image to the rootfs.
You can find the current kernel command line argument by rpm-ostree :
The way libostree mounts the specified path into / is well documented in 6 :
- Parse the ostree= kernel command line argument in the initramfs
- Set up a read-only bind mount on /usr
- Bind mount the deployment’s /sysroot to the physical /
- Use mount(MS_MOVE) to make the deployment root appear to be the root filesystem
With the result rpm-ostree kargs above, the root ( root= ) is /dev/mapper/fedora-root , the physical / of which will be mounted as /sysroot by initramfs. Currently / is initramfs, and not mounted by actual device filesystem yet (step 1).
An then, initramfs uses ostree= argument to find actual path for rootfs from the device (in my case, /ostree/boot.0/fedora/<image-commit-id>/0 , at this moment it can be accessed as /sysroot/ostree/boot.0/fedora/<image-commit-id>/0 ) and bind mounts it to the logical / (step 3).
The result is as follows (note that /ostree/boot.0/fedora/<image-commit-id>/0 is a symbolic link to /ostree/deploy/fedora/deploy/<image-commit-id>/0 ).
It is executed by ostree/src/switchroot/ostree-prepare-root.c [src]:
which is in ostree initramfs [src]:
and ostree-prepare-root is executed by systemd and logged in journal:
Making the rootfs read-only by libostree #
OK. now we know that how libostree mounts the specified rootfs image into real / . But, although the document says the root is mouted read-only, actual mount result shows it is mounted writable:
But, I am not able to write any content in / . What happened?
At first, I thought it is controlled by SELinux, since Fedora Silverblue enables SELinux by default.
But have no luck. No audit log appended in /var/log/audit/audit.log as well (even with semodule -DB ; -D indicates ignoring dontaudit flag).
the latter of which is mentioned in [the pull request]:
cgwalters commented on Sep 5, 2019
Add the immutable bit to the physical root; we don’t expect people to be creating anything there. A use case for OSTree in general is to support installing inside the existing root of a deployed OS, so OSTree doesn’t do this by default, but we have no reason not to enable it here. Administrators should generally expect that state data is in /etc and /var; if anything else is in /sysroot it’s probably by accident.
I just happened to think of this while working on #736
that contains a commit to add a line into the script creating a coreos disk:
chattr — change file attributes on a Linux file system
attributes
…
i: A file with the ‘i’ attributes cannot be modified: it cannot be deleted or renamed, no link can be created to this file, most of the file’s metadata can not be modified, and the file can not be opened in write mode. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
Here I got a hint: they use the immutable bit of Linux extended (ext2) filesystem feature. To prove whether it solely protects the rootfs, I check whether the flag is set. As the source of / is /ostree/deploy/fedora/deploy<image-commit-id> ,
Got it! the rootfs directory is set the immutable bit. Now I check whether I, as the root user, have CAP_LINUX_IMMUTABLE capability:
Great, it seems I am able to clear the bit. Let’s erase it and try to write a new file on rootfs.
Everything works as expected. Therefore, Fedora Silverblue depends on Linux ext filesystem flag for rootfs write protection.
Funny thing is that, after writing a file at / and setting the immutable bit back on, you cannot remove the /test file either.
I now understand the immutable flag works for rootfs write protection, however, I not do not know at which point the immutable flag is set. Maybe libostree downloads the OS image with the enabled bit, since there is no code for setting the immutable bit for rootfs in rpm-ostree repository.
Flatpak 7 #
Flatpak is a modern linux app packaging framework. Legacy Linux package frameworks (e.g. dpkg, yum, dnf) shares and depends on shared libraries installed on the host system. This has prohibited Linux application developers from using more recent version of libraries due to possible limited compatibility.

Recent packaging systems (e.g. AppImage, Flatpak, snapcraft) packages packs required libraries with the application binary itself altogether into an image, running it in an isolated execution environment without any dependencies in the host (A good example of isolated execution environment is Linux container, but it seems not the only option, as Flatpak does not always use Linux containers).
Fedora Silverblue, by default, runs Flatpak applications, and does not provide rpm and dnf package management system in the host. Note that Fedora Silverblue provides some ways to bridge the gap between traditional Linux and Fedora Silverblue; Toolbox and rpm-ostree , but I will not explain about these in this post.
Although they should be isolated from the host environment, they still require services provided by the host, e.g., accessing devices, rendering graphics, sound, printers, etc. Considering container based isolation, they are not provided by default.
Flatpak provides Portals, an interface that the process can interact with the host. It contains opening URIs, printing, showing notifications, power management, etc. For applications that does not packed with Flatpak framework many run in the isolated execution but cannot use these features.
Fedora silverblue что это
by Team Silverblue – Nov 15, 2022
We are proud to announce the release of Fedora Silverblue 37. Please try it and tell us what you think!
This release includes some exciting improvements, such as:
- GNOME 43 with new Device Security tab
- GNU Toolchain update (binutils 2.38, glibc 2.36)
- /sysroot is now read-only on Silverblue systems
You can find more details about all the new and exciting improvements in Fedora 37 at the following links:
- The Fedora 37 official announcement. This includes an overall summary of improvements common to all of our Fedora flavours.
As always, before installing or upgrading your system to Silverblue 37, make sure to check the latest known issues. See also the Silverblue issue tracker that tracks issues specific to Fedora Silverblue.
If you have issues with updating or upgrading your Silverblue instalation, please see this article and try the described workaround.
Enjoy Fedora Silverblue and happy rebasing to everyone!
Welcome to Fedora Silverblue 36!
by Team Silverblue – May 10, 2022
We are proud to announce the release of Fedora Silverblue 36. Please try it and tell us what you think!
This release includes some exciting improvements, such as:
- GNOME 42 with improved dark mode, more apps ported to GTK 4 and new improved screenshot app
- GNU Toolchain update (gcc 12, glibc 2.35)
- New installs will have /var on its own subvolume by default
- OpenSSL upgraded to version 3.0
- GDM sessions will run on Wayland by default when using NVIDIA driver
- Podman upgraded to 4.0 with improved performance and rewritten network stack
You can find more details about all the new and exciting improvements in Fedora 36 at the following links:
- The Fedora 36 official announcement. This includes an overall summary of improvements common to all of our Fedora flavours.
As always, before installing or upgrading your system to Silverblue 36, make sure to check the latest known issues. See also the Silverblue issue tracker that tracks issues specific to Fedora Silverblue.
Enjoy Fedora Silverblue and happy rebasing to everyone!
Welcome to Fedora Silverblue 35!
by Team Silverblue – November 02, 2021
We are proud to announce the release of Fedora Silverblue 35. Please try it and tell us what you think!
This release includes some exciting improvements, such as:
- GNOME 41 with improved Wayland and GTK 4
- Support for power modes such as Balanced, Performance, Power saver
- Improved GNOME Software app
- Wireplumber, improved session manager for Pipewire
- Ability to install some Flathub Apps after enabling third-party repositories using filtered Flathub view
- New Fedora edition Fedora Kinoite that is similar to Fedora Silverblue but uses Plasma instead of GNOME
- GNU Toolchain update (gcc 11, glibc 2.34, binutils 2.37, gdb 10.2)
You can find more details about all the new and exciting improvements in Fedora 35 at the following links:
- The Fedora 35 official announcement. This includes an overall summary of improvements common to all of our Fedora flavours.
As always, before installing or upgrading your system to Silverblue 35, make sure to check the latest known issues.
Enjoy Fedora Silverblue and happy rebasing to everyone!
Welcome to Fedora Silverblue 34!
by Team Silverblue – April 28, 2021
We are proud to announce the release of Fedora Silverblue 34. Please try it and tell us what you think!
This release includes some exciting improvements, such as:
-
, the next step in focused, distraction-free computing.
- PipeWire, a new audio and video server.
- Btrfs transparent zstd compression enabled by default.
- Updated versions of GNU Toolchain (gcc 11, glibc 2.33), Golang (version 1.16) and Ruby (version 3.0).
You can find more details about all the new and exciting improvements in Fedora 34 at the following links:
- The Fedora 34 official announcement. This includes an overall summary of improvements common to all of our Fedora flavours.
As always, before installing or upgrading your system to Silverblue 34, make sure to check the latest known issues.
Enjoy Fedora Silverblue and happy rebasing to everyone!
Welcome to Fedora Silverblue 33!
by Team Silverblue – October 27, 2020
Today, Silverblue 33 was released and can be downloaded here. We are confident you will enjoy this brand new release of Silverblue!
As usual, the Fedora team has worked hard on this release to bring you:
- Versions 3.38 of the super polished GNOME
- BTRFS as the default file system
- Nano as the new, user friendly, default editor
- Updated versions of Python (version 3.9), Ruby on Rails (version 6.0) and Perl (version 5.32)
If you are looking for additional information and exciting details around the improvements found in Fedora 33, please check the following link:
- The Fedora 33 official announcement. This includes an overall summary of improvements common to all of our Fedora flavours
As always, before installing or upgrading your system to Silverblue 33, make sure to check the latest known issues
Thanks for choosing Fedora Silverblue and happy rebasing to everyone!
Fedora 32 was released!
by Team Silverblue – April 29, 2020
Silverblue 32 is now available to download. Please, install Silverblue 32 and share your thoughts about this release with us!
This release includes some exciting improvements, such as:
- GNOME versions 3.36 — which includes a new Extensions management application (amongst many other improvements)
- EarlyOOM — Early Out of Memory Manager is now enabled by default
- Several Flatpak applications are now being pre-installed by Anaconda to improve the out of the box experience
You can find more details about all the new and exciting improvements in Fedora 32 at the following links:
- The Fedora 32 official announcement. This includes an overall summary of improvements common to all of our Fedora flavours
- A few more highlights found in Fedora 32. Plus a look back at Fedora’s last few years and a peek into Fedora’s future
As always, before installing or upgrading your system to Silverblue 32, make sure to check the latest known issues
Many thanks for using Fedora Silverblue!
Fedora 31 is now available!
by Team Silverblue – November 1, 2019
We are proud to announce the release of Silverblue 31. Please download it and let us know what you think about this release!
This release includes some exciting improvements, such as:
- Several toolbox optimisations and tighter integrations with libpod (podman) and the host system
- GNOME being updated to version 3.34
- CgroupsV2 becoming our default control groups
Please, also take a look at the Fedora 31 release announcement. This includes an overall summary of improvements common to all of our Fedora flavours
As always, before installing or upgrading your system to Silverblue 31, make sure to check the latest known issues:
- GRUB menu duplicate entries
- Podman fails to run containers on upgraded systems
- Docker package no longer available and will not run by default
Thanks for using Fedora Silverblue!
Fedora 30 has been released today!
by Matthias Clasen and Sanja Bonic – April 30, 2019
Exactly 6 months after the Fedora 29 release, here is Fedora 30! And Silverblue is part of it. Please try it and tell us what you think!
The highlights in this release include
- A much improved Toolbox, with documentation
- Better support for Flatpak and rpm-ostree in GNOME Software
- Support for installing the NVidia driver and Chrome via package layering
- Flatpaks are available out-of-the box in the Fedora registry.
Some Organizational Changes to Fedora Silverblue
by Matthias Clasen and Sanja Bonic – December 12, 2018
Fedora Silverblue is growing and Fedora in general has a new strategy. In order to reflect this, we have decided to only use the Fedora Silverblue website at Fedora (that means no more teamsilverblue) and ask the community about their preference regarding where the sources and issue tracker shall live. Please vote by December 20, 2018. You can also find the long-term planning on where things should be in the voting thread.
Fedora 29 has been released today!
by Matthias Clasen and Sanja Bonic – October 30, 2018
This is a big milestone for us. Silverblue is part of a Fedora release for the first time. If you haven’t yet, please try the Fedora 29 Silverblue variant and tell us what you think!
And just in time for Fedora 29, we have the first version of the Fedora Toolbox ready for testing as well!
The toolbox is using container technology to bring back your familiar tools and development environment on top of the immutable Silverblue base, for the best of both worlds.
Follow Debarshi’s instructions to try out Fedora toolbox.
Congratulations, Flatpak!
by Matthias Clasen and Sanja Bonic – August 20, 2018
Flatpak has reached a major milestone today, with its 1.0 release.
We in Team Silverblue are all excited and happy to use Flatpak 1.0 as the solid foundation for application deployment and execution in Fedora Silverblue.
Keep it coming! ️
Welcome to the party, Fedora CoreOS!
by Matthias Clasen and Sanja Bonic – June 21, 2018
As we learned yesterday, the Fedora family is growing!
We in Team Silverblue are all excited and happy that Fedora CoreOS will join us to push the limits of immutable operating systems and container technology in the larger Fedora family.
If you are interested in helping out, please join Team Silverblue. And if you think your use case would be a good fit for an image-based desktop OS, we’d like to hear from you!
We aim to make good progress on this project for Fedora 29 and plan to make Silverblue the preferred Workstation variant by Fedora 30.
Visit the Fedora Silverblue website to learn more and follow us on Twitter to get the latest updates.
A look around Team Silverblue
by Matthias Clasen and Sanja Bonic – May 23, 2018
A few weeks ago, we introduced Team Silverblue as a new initiative in Fedora.
Now it is time to take a deeper look and see what the project is about and how it works.
Goals and Deliverables
Before we chose the name Team Silverblue, the team was the Fedora Atomic Workstation SIG, and the Atomic Workstation is what we are producing, now under its new name, Silverblue. At its core, it is a variant of the Fedora Workstation which uses rpm-ostree to provide an immutable OS image with reliable updates and easy rollbacks.
The concrete goals of the Team Silverblue project are to provide excellent support for container-based workflows and make Silverblue the preferred variant of Fedora Workstation. We want to reach these goals by the time Fedora 30 is released.
To get there, we need to close a number of remaining gaps in the Flatpak and OSTree support in GNOME Software, and improve the support for contrainer-based workflows in the desktop.
- Install all desktop apps as Flatpaks
- Support package layering for OS extensions in GNOME Software
- Good support for «pet containers» in the desktop
- Support rollbacks in GNOME Software
- Support rebases in GNOME Software
- Support kernel modules in rpm-ostree
You can take a look at our issue tracker to find out more about these and other tasks.
Infrastructure
Like most projects, Fedora Silverblue has a website (the one you’re on now, in fact). It serves as the central point for information around Silverblue. Over time, we hope to make this a go-to place for learning more about Linux and containers.
The Silverblue iso image and OSTree repository are built and hosted in the Fedora build infrastructure.
If you want to get in touch with team members, there are several ways:
- The Silverblue community is an excellent place to ask a question or discuss Silverblue topics
- Alternatively, there is a #silverblue IRC channel on Libera.Chat
- If you want to report an issue or make a suggestion, you can use the issue tracker
Introducing Team Silverblue
by Matthias Clasen and Sanja Bonic – May 4, 2018
Good news, everyone! In some parts of the world it is still May the 4th. And with this date comes great responsibility. Let’s talk about Silverblue.
The Atomic variant of Fedora Workstation has been around for a few years. It has been a low-key operation that only a few people knew about and used. By now, most of the necessary pieces of infrastructure for a good desktop experience have fallen into place, and it is time to bring the Atomic Workstation to a bigger audience.
The Team Silverblue project is about taking the last few steps for turning the Atomic Workstation variant into a first-class product, and making it as good or better than the traditional variant for most use cases. A particular focus will be on developers, and we are working on better support for container-based workflows and pet containers in the desktop.
If you are interested in helping out, please join Team Silverblue. And if you think your use case would be a good fit for an image-based desktop OS, we’d like to hear from you!
We aim to make good progress on this project for Fedora 29 and plan to make Silverblue the preferred Workstation variant by Fedora 30.
Visit the Fedora Silverblue website to learn more and follow us on Twitter to get the latest updates.
Справочная: чего ждать от Fedora Silverblue
/ фото Clem Onojeghuo Unsplash
Как появилась Silverblue
Fedora Silverblue — это неизменяемая десктопная операционная система. В ней все приложения запускаются в изолированных контейнерах, а обновления устанавливаются атомарно.
Ранее проект назывался Fedora Atomic Workstation. Позже его переименовали в Silverblue. По словам разработчиков, они рассматривали более 150 вариантов названий. Silverblue выбрали просто потому, что имелся такой свободный домен и аккаунты в социальных сетях.
Обновленная система сменила Fedora Workstation на посту приоритетной сборки для десктопов в Fedora 30. Авторы говорят, что в перспективе Silverblue может полностью вытеснить Fedora Workstation.
Один из резидентов Hacker News предположил, что концепция Silverblue стала развитием проекта Stateless Linux. Его в Fedora продвигали около десяти лет назад. Stateless Linux должна была упростить администрирование тонких и толстых клиентов. В ней тоже все конфигурационные файлы системы открывались в режиме «только для чтения».
Что дает «неизменяемость»
Термин «неизменяемая операционная система» обозначает, что корневая и пользовательская директории монтируются в режиме «только для чтения». Все изменяемые данные размещаются в каталоге /var. Аналогичный метод используют разработчики ChromeOS и macOS Catalina. Такой подход повышает защищенность ОС и не дает удалить системные файлы (например, по ошибке).
Упрощается и установка обновлений — для этого достаточно перезагрузить систему с нового образа. Дополнительно появляется возможность быстро переключаться между несколькими ветками (релизами Fedora). Например, между разрабатываемой в данный момент версией Fedora Rawhide и репозиторием updates-testing с готовящимися обновлениями.
В чем отличия от классической Fedora
Для установки базового окружения (/ и /usr) используется технология OSTree. Можно сказать, что это система «версионирования» RPM-пакетов. RPM-пакеты транслируются в репозиторий OSTree при помощи rpm-ostree. Устанавливая пакет, она формирует точку восстановления, на которую можно откатиться в случае сбоя.
OSTree также позволяет устанавливать приложения из репозиториев dnf/yum и репозиториев, не поддерживаемых Fedora. Для этого вместо команды dnf install нужно использовать rpm-ostree install. Система сформирует новый базовый образ операционной системы и заменит им установленный.
В качестве механизма для обновления приложений используется Flatpack. Он запускает их в контейнерах. Flatpack-пакет включает в себя лишь специфические для конкретного приложения зависимости. Все базовые библиотеки (вроде библиотек GNOME и KDE) остаются подключаемыми runtime-окружениями. Такой подход позволяет сократить размер пакетов — исключить из них повторяющиеся компоненты.
/ фото Jonathan Larson Unsplash
Для установки приложений, которые не упакованы во Flatpack, можно использовать Toolbox. Он позволяет создать контейнер с классическим установщиком Fedora.
Аналогичные решения
Есть и другие дистрибутивы, задачи которых аналогичны Silverblue. Примером может быть MicroOS от openSUSE. Это не самостоятельный дистрибутив, а часть платформы openSUSE Kubic для развёртывания CaaS (Container as a Service).
Система работает с контейнерами Docker. Их образы распространяются в виде RPM-пакетов. Это упрощает установку приложений на основе командной строки, которые недоступны в формате Flatpack. Хост-система для запуска контейнеров формируется на основе официального репозитория openSUSE Tumbleweed.
MicroOS разрабатывалась для развертки в масштабных средах (например, в дата-центрах), но при этом способна работать и на одиночных машинах.
Примером другой похожей разработки может служить NixOS. Это дистрибутив Linux, в основе которого лежит менеджер пакетов Nix. Его главная особенность — декларативное описание конфигураций. Администратору не нужно устанавливать систему и настраивать ее вручную. Состояние прописывают в специальном файле: там указывают все пакеты и настройки аутентификации. Далее, пакетный менеджер автоматически приводит ОС к указанному состоянию.
Эту систему активно используют облачные поставщики, университеты и ИТ-компании.
В любом случае у Silverblue есть шанс занять свою нишу на рынке. Получится ли — предстоит увидеть в будущем.
Установка и использование Fedora Silverblue
Fedora Silverblue — это вариант рабочей станции Fedora. Она поставляется в образах которые создаются путем использования rpm-ostree проекта. Это неизменяемая настольная операционная система. Она стремится быть стабильной и надежной. Кроме того предоставляет совершенно новый опыт использования Linux. Система считается тестовой в Fedora, постоянно дорабатывается и при кажущейся простоте подойдет не всем. Эта «шпаргалка» для пользователей уже знакомых с Linux.
Образ Fedora Silverblue и программу для записи на флешку Fedora Media Writer берем на официальном сайте Fedora. Записать на флешку Fedora Silverblue 30 можно программой Fedora Media Writer, или другой известной вам программой.
Установка и использование Fedora Silverblue
1.Установка Fedora Silverblue
Сразу хочу предупредить, что Silverblue 30 не «дружит» с двойной загрузкой. Может сработать, а может и не получиться. Это нужно иметь ввиду. Подробности на сайте: Документация Fedora.(нужно создавать дополнительный раздел boot/efi) Я надеюсь в 31-й версии поправят, ну а пока, что есть то и имеем.
В Silvrblue нет Live-режима, она использует установщик Anaconda и установка полностью идентична обычной установке Fedora. Запись в Silverblue возможна только в раздел /var. При разметке диска с отдельным разделом /home установщик сам сделает символическую ссылку в /var/home. Подробно на установке я останавливаться не буду.


Заполняем все поля, ждем пока установится, перезагружаем. Стоит отметить установка и развертывание происходит по другому и занимает больше времени, чем обычная установка Linux.
2. Настройка Fedora Silverblue
Silverblue имеет свой набор команд. Все команды rpm-ostree можно посмотреть в терминале:
rpm-ostree —help ostree admin —help man
А также в гугле:
- https://www.mankier.com/1/rpm-ostree
- https://www.mankier.com/1/ostree-admin
Обновляем систему(нужно подождать пока скачается):
Первое обновление будет долгим, ежемесячных респинов и нет-установщика в Silverblue нет, посмотреть ход загрузки можно в системном мониторе. Можно обновиться и через Gnome-software, но я по старинке больше доверяю терминалу.

После обновления перезагрузим:
Далее запускаем Gnome-software и устанавливаем репозитории Fedora, перезагружаемся, опционально можно подключить репозиторий Google-chrome.

После обновления пробежимся по настройкам, терминалу, наутилусу, браузеру и настроим все под себя. Здесь я тоже подробно останавливаться не буду.
По умолчанию Silverblue выглядит примерно так:

Эта команда показывает выполненные развертывания, установленные пакеты (LayeredPackages, LocalPackages), закрепленные снимки.

Как видим в текущем снимке у нас добавлены репозитории Fedora и теперь можно устанавливать ее пакеты. На этом первоначальная настройка закончена.
3. Откаты, реверс, пины
Одной из удивительных возможностей Fedora Silverblue является возможность легкого отката системы. Смотрим систему:
Сделаем снимок, а если точнее закрепим развертывание системы:
sudo ostree admin pin 0


Добавим к примеру программу screenfetch
rpm-ostree install screenfetch systemctl reboot

Я создал новое развертывание и закрепленный pin переместился вниз. Открепить снимок:
sudo ostree admin pin —unpin N
Здесь N порядковый номер развертывания от 0 до 2 в текущей загрузке (я признаться не сразу до этого допер). В нашем случае команда будет выглядеть так:
sudo ostree admin pin —unpin 1

Как видим снимок открепился. Далее рассмотрим команду Reset. Она удаляет все установленные пакеты, возвращает систему в вид по умолчанию (при этом все личные файлы и настройки сброшенных приложений останутся):


Как видим сейчас уже три развертывания. Первое дефолтное(точка слева указывает какой снимок сейчас используется), второе предыдущее до сброса и третье наш закрепленный pin.
С закрепленным снимком(снимками) система поддерживает три последних развертывания. Без закрепленных снимков два развертывания(при обновлении, добавлении пакетов то есть создании нового развертывания открепленный снимок удалится).
Далее рассмотрим команду Rollback, при помощи нее можно откатится на предыдущий снимок:


Как видим первый и второй снимки поменялись местами, третий закрепленный pin остался на месте. Ещё нужно отметить OSTree не устанавливает полностью все снимки на диск, а загружает дельту.

Как видим с тремя снимками размер системы у нас чуть меньше 6 GB.
Если снимок не загружается или просто нужно загрузиться в определенный pin, его можно выбрать в меню загрузки. По умолчанию меню загрузки скрыто, Посмотреть его можно удерживая после включения, перезагрузки клавишу ESC в EFI системах и соответственно клавишу Shift в системах с BIOS.


Меню загрузки у меня (у других тоже) дублируется в четыре и шесть строк соответственно если два или три снимка в системе. Я использую верхнюю вторую или третью строку. Надеюсь в следующей версии Silverblue это исправят. Очистка кеша:
С разными ключами:
sudo ostree admin cleanup
4. Flatpak
Silverblue разработана для использования Flatpak, и сейчас мы их можем подключить все их, или на свой выбор. Флатпаки в отличии от обычных RPM пакетов не требуют перезагрузки при установке или обновлении. Устанавливаем репозиторий Flathub:
flatpak remote-add —if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Дополнительно: бета-версия Flathub:
flatpak remote-add flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
Firefox пока отсутствует в flathub, но есть репозиторий с Firefox Nightly и Dev Edittion (поддерживается Red Hat).
flatpak remote-add —from org.mozilla.FirefoxRepo https://firefox-flatpak.mojefedora.cz/org.mozilla.FirefoxRepo.flatpakrepo
Ночные приложения GNOME, здесь много приложений в стадии разработки, если захочется попробовать что-то не на Flathub или в качестве альтернативы.
flatpak remote-add —if-not-exists gnome-nightly https://sdk.gnome.org/gnome-nightly.flatpakrepo
flatpak remote-add —if-not-exists gnome-apps-nightly —from https://sdk.gnome.org/gnome-apps-nightly.flatpakrepo

Обновим Gnome-software, перезапустим систему.


Также можно удалить неиспользуемые репозитории Flathub:
flatpak remote-delete «name repo»

Первые установленные флатпаки тянут с собой все нужные библиотеки, зависимости и занимают много места. Последующие флатпаки, все это «хозяйство» используют совместно, занимают меньше места, быстрее качаются и устанавливаются.

На форумах пользователи пишут о использовании Snap и Appimage пакетов. Я сам не пробовал, но их тоже можно иметь ввиду.
5.Установка локальных пакетов
Silverblue поддерживает три типа пакетов.
- LayeredPackages — пакеты из подключенных репозиториев, обновляются вместе с системой.
- LocalPackages — сторонние RPM пакеты, не обновляются.
- Flatpak.
В командах rpm-ostree нет собственного поиска пакетов, поэтому приходится использовать обходные решения:
Toolbox — установка обычной Fedora в контейнере, поиcк DNF (будет рассмотрено ниже).
Dnfdragora:
rpm-ostree install dnfdragora
Поиск RPM:
Список установленных пакетов:
rpm -qa | sort -fu > rpm-list-installed.txt
Поиск RPM пакетов:
rpm -qa | grep httpd
Поиск через интернет: https://pkgs.org. https://apps.fedoraproject.org/packages/s/. А также сайты: Rpmfusion. Copr. Пакеты я стараюсь устанавливать списком (списками), чтобы уменьшить количество перезагрузок.
Установка RPM Fusion:
sudo rpm-ostree install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo rpm-ostree install firewall-config
rpm-ostree install chromium chromium-libs-media-freeworld
rpm-ostree install ffmpeg
Google-chrome (нужно включить репозиторий в Gnome-software):
rpm-ostree install google-chrome-stable
rpm-ostree install gstreamer1-libav gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly gstreamer1-plugins-ugly-free chromium-libs-media-freeworld ffmpeg
Виртуализация (можно установить Virtualbox или Gnome-boxes, я же использую, Virt-manager):
rpm-ostree install virt-install libvirt-daemon-config-network libvirt-daemon-kvm qemu-kvm virt-manager virt-viewer virt-top
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
lsmod | grep kvm
Добавление пользователя в группу libvirtd:
sudo grep -E ‘^libvirt:’ /usr/lib/group >> /etc/group
sudo usermod -aG libvirt $USER
По задумке разработчиков Silverblue нужно использовать с Flatpak. Можно установить все нужные приложения локально.


А также можно комбинировать и поставить все доступные из Flatpak.



Чем больше в системе локальных пакетов и сторонних репозиториев, тем медленней она обновляется. Снимок строится во время обновления вместе с локальными пакетами я думаю. А может вообще не обновиться (сам недавно делал Reset, обновлялся и по новой корректировал список и ставил заново локальные пакеты). Это тоже нужно иметь ввиду. Быстрая проверка обновлений:
rpm-ostree upgrade —check
6. Переключение Silverblue
Команда Rebase позволяет переключиться на любую версию Fedora независимо от того какая версия у нас установлена. Обновление версии дистрибутива Linux всегда было неоднозначным и спорным вопросом. Я, например, предпочитаю переустановку, кто-то обновление. Fedora Silverblue позволяет безболезненно переключиться на другую версию, что я сейчас и сделаю.
Проверяем доступные репозитории ostree:
ostree remote list

Проверяем доступные репозитории для rebase:
ostree remote refs fedora

Как видим для загрузки доступны версии с 27-й по 32-ю (rawhide). Выбираем 31-ю версию нужной разрядности — 86_64, и обновляемся:
rpm-ostree rebase fedora:fedora/31/x86_64/silverblue
Придется скачать около 1GB обновлений.

Ждем загрузку, установку и по окончании перезагружаем:


Как видим система обновилась на 31-ю, а второй снимок у нас 30-я Fedora. Это почти как dualboot. Далее я пробую 31-ю обновить на rawhide:
rpm-ostree rebase fedora:fedora/rawhide/x86_64/silverblue


Как видим установилась и 32-я версия. Обновление работает без проблем, скорость загрузки растет постепенно. Если будут ошибки можно ввести команду отмены:
И начать заново. Рабочий снимок не пострадает. По окончании можно почистить кеш.
7. Окружение рабочего стола
В Silverblue можно установить, добавить к Gnome другие окружения рабочего стола (в дальнейшем DE) с помощью локальных пакетов. Я не люблю «кашу с DE», и предпочитаю одно DE на систему или DE+WM (оконный менеджер).
Сообщество Fedora разрабатывает ветку Kinoite для использования Fedora Silverblue с другими DE. Снова берем наш дефолтный Silverblue. Можно закрепить снимок:
sudo ostree admin pin 0

Загружаем ключ GPG:
curl -O https://tim.siosm.fr/downloads/siosm_gpg.pub
Добавляем удаленную ветку OSTree:
sudo ostree remote add kinoite https://siosm.fr/kinoite/ —gpg-import siosm_gpg.pub

ostree remote list
Смотрим доступные образы:
ostree remote refs kinoite

Как видим в у нас есть образы:
- Base;
- Deepin;
- Kinoite;
- LXQT;
- Pantheon;
- Silverrblue;
- XFCE.
Для начала попробуем установить KDE:
rpm-ostree rebase kinoite:fedora/30/x86_64/kinoite


Скачаем порядка 750MB, после установки перезагрузим:

Итак мы установили KDE с минимальным набором приложений.




Далее посмотрим образ base:
rpm-ostree rebase kinoite:fedora/30/x86_64/base




Здесь мы видим минимальную Fedora Server. Далее я переключаюсь на сохраненный pin 0 с дефолтной Fedora Silverblue и устанавливаю XFCE:
rpm-ostree rebase kinoite:fedora/30/x86_64/xfce




Здесь мы видим Fedora XFCE. Далее я устанавливаю Deepin:
rpm-ostree rebase kinoite:fedora/30/x86_64/deepin




Здесь мы видим Fedora Deepin. Далее я устанавливаю LXQT:
rpm-ostree rebase kinoite:fedora/30/x86_64/lxqt




Здесь мы видим Fedora LXQT. Далее я два раза пробовал установить kinoite:fedora/30/x86_64/pantheon (с окружением Pantheon). К сожалению Pantheon отдельно я не смог запустить, возможно его нужно устанавливать вместе с Gnome. Последним я установил kinoite:fedora/30/x86_64/silverblue:
rpm-ostree rebase kinoite:fedora/30/x86_64/silverblue

Это тот же Gnome, но из репозитория Kinoite. Как видим некоторые другие DE вполне себе ставятся на Silverblue из репозитория Kinoite. Чтобы оценить их работу, нужно ставить на реальное «железо» и пользоваться. Также нужно учитывать, что это не официальные (возможно пока) спины Fedora, а проект одного разработчика. Подробнее здесь. Я же пока использую обычную Fedora Silverblue c Gnome.
8. Toolbox
Панель инструментов — Toolbox предварительно установлена в Fedora Silvrblue 30. Это проект, позволяющий легко использовать контейнеры для обычных пользователей. Это достигается с помощью контейнеров podman. Панель инструментов позволяет вам легко и быстро создать контейнер с обычной установкой Fedora, с которой вы можете играть или разрабатывать, отдельно от вашей системы. Я не разработчик, и пока не нашел применения для себя Toolbox. Но упомянуть о нем все же стоит. Toolbox поддерживает:
- Ваше существующее имя пользователя и разрешения;
- Доступ к вашему домашнему каталогу;
- Общие инструменты командной строки, включая менеджер пакетов DNF.
Другими словами, контейнеры панели инструментов выглядят, чувствуют и ведут себя как стандартная среда командной строки Linux. Для запуска требуются две простые команды:
Эта команда загрузит образ Fedora(500MB) и создаст из него контейнер панели инструментов. После этого запустите:
Оказавшись внутри панели инструментов, вы можете получить доступ к общим инструментам командной строки и установить новые с помощью DNF. Выход из Toolbox:


Полный список команд можно посмотреть в терминале:
Заключение
Итак на этом настройка Fedora Silverblue закончена. Свой опыт использования, вопросы, пишите в комментариях. В следующей части я напишу о продвинутых настройках Silverblue.
Более подробно о настройках можно узнать на официальном сайте. А также хорошие обзоры в ютубе снял блогер DorianDotSlash: