URL: https://linuxfr.org/news/fedora-silverblue-en-pratique Title: Fedora Silverblue en pratique Authors: Renault Davy Defaud, bubarđŠ„, BenoĂźt Sibaud, claudex, tisaac et palm123 Date: 2020ćčŽ04æ17æ„T16:20:18+02:00 License: CC By-SA Tags: fedora, silverblue, libreoffice, firefox et flatpak Score: 26 Fedora Silverblue tente dâĂ©tablir un systĂšme fonctionnel conciliant Fedora _Workstation_, la version bureautique de la distribution Ă©ponyme, et le projet Atomic. Cette dĂ©clinaison de Fedora commence Ă monter en puissance en termes de dĂ©veloppements depuis quelque temps et nous rĂ©alisons que pour beaucoup de personnes extĂ©rieures ce projet reste trĂšs flou, tant dans ses objectifs que sur les implications techniques. Nous avons prĂ©sentĂ© dans [un article prĂ©cĂ©dent](https://linuxfr.org/news/presentation-de-fedora-silverblue) lâhistorique et ce qui a motivĂ© la conception de Fedora Silverblue. Ici, nous allons nous attarder plutĂŽt Ă un cas dâusage en pratique pour voir la diffĂ©rence avec une Fedora classique.  ---- [Site officiel de Fedora Silverblue](https://silverblue.fedoraproject.org/) [Site officiel du projet Fedora](https://getfedora.org/) [Site officiel de la communautĂ© francophone de Fedora](https://www.fedora-fr.org/) ---- # GĂ©nĂ©ralitĂ©s Beaucoup de choses restent identiques par rapport Ă une Fedora Workstation classique. MĂȘme bureau, mĂȘme interface, logithĂšque ou fraĂźcheur des versions. La procĂ©dure dâinstallation avec Anaconda ne change pas vraiment non plus. Si vous souhaitez tester, vous pouvez [tĂ©lĂ©charger Fedora Silverblue](https://silverblue.fedoraproject.org/download) directement ou [par Torrent](https://torrent.fedoraproject.org/). Ensuite pour lâinstaller vous pouvez lire [le dĂ©but de cette page de documentation](https://doc.fedora-fr.org/wiki/Guide_d%27installation_de_Fedora_en_images), cela fonctionne aussi bien sur Silverblue. La diffĂ©rence, comme expliquĂ© dans lâarticle prĂ©cĂ©dent, rĂ©side dans la gestion de la logithĂšque. Et nous allons en Ă©tudier cela en pratique. # Base du systĂšme avec RPM ostree Comme vous le savez, la base du systĂšme est un tout uni et dans lâensemble en lecture seule. Mettre Ă jour le systĂšme signifie passer dâun Ă©tat vers un autre sans autre altĂ©ration. Cela se passe avec la commande suivante : ``` # rpm-ostree upgrade ``` [](https://blog.fedora-fr.org/public/renault/Silverblue/Mise_a_jour_Silverblue.png) Une fois cela fait, il suffit de redĂ©marrer et vous basculez vers le nouvel Ă©tat du systĂšme, Ă jour. Notons que GNOME Logiciels permet de rĂ©aliser aussi la mise Ă jour de la base du systĂšme mais graphiquement. On peut voir en effet quâun nouvel Ă©tat est installĂ© sur votre machine via la commande : ```shell $ rpm-ostree status State: idle AutomaticUpdates: disabled Deployments: âăăăŸă ostree://fedora:fedora/31/x86_64/silverblue Version: 31.20200410.0 (2020ćčŽ04æ10æ„T14:27:44Z) Commit: 16f67d3577701f988cb6c32a6376700f24e720e0896b2f5f4a6b6ab65f030b31 GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4 Diff: 524 upgraded, 24 downgraded, 13 removed, 18 added âăăăŸă ostree://fedora:fedora/31/x86_64/silverblue Version: 31.1.9 (2019ćčŽ10æ23æ„T21:44:48Z) Commit: c4bf7a6339e6be97d0ca48a117a1a35c9c5e3256ae2db9e706b0147c5845fac4 GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4 ``` Le systĂšme avec le symbole « âăăăŸă » est la version courante du systĂšme, sur lequel jâai dĂ©marrĂ© aprĂšs lâinstallation de Fedora. On constate quâaprĂšs la mise Ă jour, un nouvel Ă©tat est disponible avec sa date dâinstallation et la rĂ©fĂ©rence de la version employĂ©e. Notez la ligne _Diff_ pour cet autre Ă©tat, il explique la diffĂ©rence entre lâĂ©tat actuel et celuiâci, qui consiste ici majoritairement en paquets plus rĂ©cents. Et, en effet, aprĂšs redĂ©marrage de la machine, le symbole a changĂ© de place. La mise Ă jour a bien Ă©tĂ© effective et le redĂ©marrage aussi rapide que dâhabitude. La rĂ©fĂ©rence vers lâĂ©tat prĂ©cĂ©dent reste prĂ©sente, ce qui nous autorise Ă revenir en cas de gros souci pour dĂ©marrer sur le nouvel Ă©tat, ou si lâon a un problĂšme quâon a constatĂ© nousâmĂȘmes. Amusonsânous Ă revenir, cela se fait simplement : ``` # rpm-ostree rollback ``` Et aprĂšs un redĂ©marrage, on a basculĂ© vers lâĂ©tat prĂ©cĂ©dent. Simple, fiable et rapide. Notez quâil est possible de choisir lâĂ©tat au dĂ©marrage via GRUB. En cas dâinstallation monoâsystĂšme, le menu de GRUB est cachĂ© par dĂ©faut, appuyez sur la touche `Ăchap` au dĂ©marrage de GRUB pour lâafficher et faire votre choix. Bien sĂ»r, il est possible de configurer un peu ce systĂšme de base pour rĂ©soudre certains problĂšmes, mĂȘme si cela viole un peu lâesprit derriĂšre Silverblue. Par exemple, si nous voulons profiter du pilote propriĂ©taire de NVIDIA, car le pilote libre _nouveau_ ne fonctionne pas suffisamment bien sur notre machine. Nous pouvons faire les choses ainsi : Dâabord, il faut installer le dĂ©pĂŽt externe [RPMFusion](https://rpmfusion.org/), qui dispose du paquet RPM nĂ©cessaire. Un redĂ©marrage est Ă©videmment nĂ©cessaire pour changer dâĂ©tat avec ce dĂ©pĂŽt disponible : ``` # rpm-ostree install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-31.noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-31.noarch.rpm # systemctl reboot ``` Ensuite, on peut installer le paquet nĂ©cessaire et changer lâargument de dĂ©marrage du noyau pour dĂ©sactiver le recours au pilote _nouveau_. Un redĂ©marrage sera encore nĂ©cessaire pour valider lâaction : ``` # rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia-cuda libva-utils libva-vdpau-driver gstreamer1-libav # rpm-ostree kargs --append=modprobe.blacklist=nouveau --append=rd.driver.blacklist=nouveau # systemctl reboot ``` _rpm-ostree_ se charge de tout pour altĂ©rer lâĂ©tat du systĂšme de base. Comme vous pouvez le voir, il reste possible dâinstaller des paquets RPM Ă lâancienne, bien que dans le cas de Silverblue, cela reste dĂ©conseillĂ© en dehors de quelques cas comme celui Ă©voquĂ© plus haut. Cela se fait dans une couche indĂ©pendante du systĂšme de base et sera dĂ©ployĂ© auâdessus de votre version de rĂ©fĂ©rence aprĂšs chaque mise Ă jour de ce dernier. Notez que pour certaines applications, le fait que le systĂšme principal soit en lecture seule, peut poser des soucis de compatibilitĂ©. Et si jamais vous souhaitez revenir dans lâĂ©tat de base de votre systĂšme, vous pouvez utiliser simplement cette commande : ``` # rpm-ostree reset ``` Et comme Silverblue fonctionne par Ă©tat pour les mises Ă jour, ce que lâon a vu plus haut, changer de branche de Fedora est Ă©galement possible facilement. [](https://blog.fedora-fr.org/public/renault/Silverblue/GRUB_Silverblue.png) Dâabord listez les versions possibles et enfin dĂ©ployez cette version : ``` # ostree remote refs fedora # rpm-ostree rebase fedora:fedora/32/x86_64/silverblue ``` RedĂ©marrez et mission accomplie, vous voilĂ sous Fedora 32. Cela fonctionne Ă©galement dans lâautre sens, pour revenir sur Fedora 31 si vous ĂȘtes sur la version 32. # Fedora Toolbox Comme cela a Ă©tĂ© expliquĂ© dans lâautre article, Fedora Toolbox est une surcouche Ă _podman_ et _buildah_. Son but est de facilement crĂ©er un conteneur avec une version de Fedora comme base. Il se charge luiâmĂȘme de rĂ©cupĂ©rer les donnĂ©es, de faire en sorte que lâutilisateur soit le mĂȘme que sur lâhĂŽte, etc. Par ailleurs, le rĂ©pertoire `/home` est partagĂ© entre lâhĂŽte et les conteneurs, ce qui autorise dâexploiter les outils sur vos donnĂ©es. _podman_ est pour rappel un utilitaire compatible avec Docker mais qui ne nĂ©cessite pas un dĂ©mon avec les droits superâutilisateur pour fonctionner. Pour des raisons de sĂ©curitĂ©. CrĂ©er un conteneur est trĂšs simple : ```shell $ toolbox create ``` Qui va en crĂ©er un avec un nom par dĂ©faut et la mĂȘme version de Fedora que votre instance de Silverblue. Ici _fedora-toolbox-31_. Mais on peut, bien entendu, personnaliser tout ça ainsi : ```shell $ toolbox create --container --release $ toolbox create --container fedora30 --release f30 ``` Ensuite, on peut utiliser une session de shell pour entrer dans le conteneur de votre choix : ```shell $ toolbox enter --container ``` Vous constaterez que le prompt se dote dâun « ⏹ » colorĂ© au dĂ©but, pour vous rappeler que vous ĂȘtes dans un conteneur. [](https://blog.fedora-fr.org/public/renault/Silverblue/Podman.png) Une fois Ă lâintĂ©rieur, vous pouvez faire ce que vous voulez. Utilisez _dnf_ pour installer des paquets, les mettre Ă jour comme avant, configurer votre systĂšme, etc. Lancer des applications depuis un tel conteneur est aussi possible. Dâailleurs, pour exĂ©cuter une commande dans un conteneur sans y obtenir un shell, vous pouvez faire : ```shell $ toolbox run --container $ toolbox run --container fedora30 gnome-builder ``` Pour vous y retrouver si vous avez plusieurs conteneurs, vous pouvez les lister ainsi : ```shell $ toolbox list Images created by toolbox IMAGE ID IMAGE NAME CREATED 64e68e194389 registry.fedoraproject.org/f31/fedora-toolbox:31 6 weeks ago Containers created by toolbox CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME dc75753d59a2 fedora-toolbox-31 2 hours ago Up 2 hours ago registry.fedoraproject.org/f31/fedora-toolbox:31 1a9eaf6067c9 fedora30 About an hour ago Up About an hour ago registry.fedoraproject.org/f31/fedora-toolbox:31 ``` Et si un conteneur nâest plus utile, vous pouvez le supprimer ainsi : ```shell $ toolbox rm $ toolbox rm silverblue ``` Lâobjectif de Toolbox est de vous simplifier la vie dans la configuration du conteneur pour cet usage, surtout si vous nâĂȘtes pas habituĂ©s Ă cet Ă©cosystĂšme. Mais rien ne vous empĂȘche dâutiliser _podman_ ou Docker manuellement. Les commandes _podman_ peuvent ĂȘtre exploitĂ©es Ă la place de Toolbox, par exemple sur les conteneurs créés par ce dernier. # Flatpak Par dĂ©faut, il nây a pas beaucoup de paquets Flatpak disponibles dans Silverblue (mais câest en cours de rĂ©solution). La premiĂšre Ă©tape Ă©tant dâen installer un dĂ©pĂŽt externe comme [Flathub](https://flatpak.org/setup/Fedora/). Câest trĂšs simple et rapide. [](https://blog.fedora-fr.org/public/renault/Silverblue/GNOME_Logiciels_Flatpak.png) Globalement, cela consiste Ă exĂ©cuter cette commande : ```shell $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo ``` Ensuite, vous pouvez utiliser GNOME Logiciels pour tĂ©lĂ©charger et mettre Ă jour ces applications. Ou alors Ă la main comme suit : ```shell $ flatpak update $ flatpak list Name Application ID Version Branch Origin Installation Platform org.fedoraproject.Platform f32 fedora system default org.freedesktop.Platform.GL.default 19.08 flathub system openh264 org.freedesktop.Platform.openh264 2.0 flathub system Geary org.gnome.Geary 3.36.1 stable fedora system Lollypop org.gnome.Lollypop 1.2.33 stable flathub system GNOME Application Platform version 3.36 org.gnome.Platform 3.36 flathub system ``` Comme vous pouvez le voir, Geary et Lollypop ont Ă©tĂ© installĂ©s par Flatpak, lâun via Flathub, lâautre via [Fedora Registry](https://registry.fedoraproject.org/), qui propose ses propres Flatpak aussi exploitables dans un conteneur podman ou Docker. Les environnements dâexĂ©cution nĂ©cessaires pour ces applications ont aussi Ă©tĂ© installĂ©s et sont listĂ©s ici comme _GNOME Application Platform_. Il suffit donc de chercher si un tel paquet existe puis lâinstaller. Prenons GNOME Agenda comme exemple : ```shell $ flatpak search calendar Name Description Application ID Version Branch Remotes Agenda Agenda de GNOME org.gnome.Calendar 3.36.0 stable fedora,flathub $ flatpak install org.gnome.Calendar ``` Comme lâapplication existe dans Flathub et Fedora, Flatpak vous demandera la source Ă utiliser ici. Par dĂ©faut, un Flatpak est installĂ© dans `/var/lib` pour ĂȘtre accessible pour lâensemble des utilisateurs. Mais si pour une raison particuliĂšre vous souhaitez que seul votre utilisateur ait accĂšs, vous pouvez ajouter lâargument `--user` : ```shell $ flatpak install --user org.gnome.Calendar ``` Lâun des avantages de Flatpak est quâil repose aussi sur des Ă©tats. Si une mise Ă jour ne vous plaĂźt pas, car elle introduit une rĂ©gression gĂȘnante pour vous, vous pouvez facilement revenir Ă lâĂ©tat prĂ©cĂ©dent. Dâabord, il faut identifier la liste des Ă©tats disponibles de votre application. ```shell $ flatpak remote-info --log flathub org.gnome.Geary ``` Ensuite, choisir un Ă©tat et lâappliquer. ```shell $ flatpak update --commit bba3bbb1ab3b127de0fd984279d99170f9ec671b05c18cc64a0c102243664a1c org.gnome.Geary ``` GNOME Shell permet de les lancer comme une application native, Ă©videmment, mais depuis le terminal, câest possible ainsi : ```shell $ flatpak run $ flatpak run org.gnome.Geary ``` Peu Ă peu les Flatpak disposent dâun systĂšme de permissions et de portails pour permettre lâaccĂšs aux ressources dont les applications ont besoin uniquement. Notons aussi que GNOME Logiciels peut prĂ©senter les choses de maniĂšre un peu trompeuse. Par exemple, installer Lollypop, qui Ă©tait le premier Flatpak, nĂ©cessitait de tĂ©lĂ©charger prĂšs de 1 Gio de donnĂ©es pour 40 Mio installĂ©s. En fait, le gigaoctet de donnĂ©es Ă©tait liĂ© aux environnements dâexĂ©cution nĂ©cessaires Ă tĂ©lĂ©charger. Mais Geary, qui utilise les mĂȘmes environnements dâexĂ©cution nâa eu besoin que de quelques mĂ©gaoctets seulement pour ĂȘtre installĂ© par aprĂšs. Comme Silverblue repose Ă©normĂ©ment sur les Flatpak, vos environnements dâexĂ©cution seront rentabilisĂ©s car partagĂ©s par beaucoup dâapplications. Si vous souhaitez voir les changements opĂ©rĂ©s sur les Flatpak comme les installations et mises Ă jour, une commande est possible : ```shell $ flatpak history Time Change Application Branch Installation Remote avril 11 18:00:17 add remote system flathub avril 11 18:06:07 deploy install org.fedoraproject.Platform f32 system fedora avril 11 18:06:12 deploy install org.gnome.Geary stable system fedora ``` # Mode de travail avec Silverblue Avant nous avions un systĂšme unifiĂ© avec des dĂ©pĂŽts centralisĂ©s pour tout, et il nây avait pas beaucoup de possibilitĂ©s pour installer des applications ou maintenir le systĂšme. Silverblue introduit en plus une certaine redondance par endroit. Comment sây retrouver ? La base du systĂšme est globalement en lecture seule et minimaliste. Ă part le mettre Ă jour, il nây a pas grandâchose Ă faire en temps normal. Y toucher peut devenir essentiel pour ce qui a trait Ă la gestion du matĂ©riel, comme le chargeur de dĂ©marrage GRUB ou le noyau et ses pilotes. En dehors de cela, il nâest pas recommandĂ© dâessayer de le manipuler. Lâobjectif est quâil soit minimal, simple et fiable. Le reste repose sur les conteneurs et Flatpak. Les Flatpak seront Ă privilĂ©gier pour les applications graphiques. AprĂšs tout, seules ces applications peuvent ĂȘtre installĂ©es par ce biais. Pour le reste, il y a les conteneurs avec Fedora Toolbox. Utile pour les applications textes, environnements de dĂ©veloppement, etc. Le fait dâavoir plusieurs conteneurs permet de sĂ©parer les tĂąches. Le dĂ©veloppement Python dâun cĂŽtĂ©, le serveur Web de lâautre, lâexpĂ©rimentation dâun projet, un environnement pour le travail professionnel, etc. Ă vous de voir selon vos envies et besoins. Sâil reste possible dâavoir un conteneur fourreâtout pour simuler une Fedora classique, cette approche nâest pas rĂ©ellement dans lâesprit de Silverblue. # Le gain ? Une partie des gains a Ă©tĂ© largement relatĂ©e dans lâarticle prĂ©cĂ©dent. Mais avec un peu de pratique, que pouvonsânous observer ? Tout dâabord, la sĂ©paration du systĂšme en plusieurs parties permet de leur donner une responsabilitĂ© propre, ce qui amĂ©liore dans un sens sa fiabilitĂ© mais aussi son Ă©lĂ©gance. Le systĂšme de base se charge de fournir un systĂšme qui dĂ©marre et qui est exploitable. Il est beaucoup plus difficile dâaboutir Ă une situation complexe inextricable avec une machine peu fonctionnelle. La flexibilitĂ© est plus grande, via Fedora Toolbox et Flatpak, il est plus facile dâexpĂ©rimenter des choses et dâadapter votre systĂšme Ă vos besoins. Vous souhaitez tirer profit dâune version de Python qui est dans Fedora 32 et dans Fedora 29 pour vos tests ? Vous pouvez avoir les deux facilement avec Fedora Toolbox en ayant un conteneur pour chaque. Et si vous avez fini un projet professionnel et que vous nâavez plus besoin de ces conteneurs spĂ©cialisĂ©s de Python avec les versions spĂ©cifiques, il suffit de les supprimer. Plus besoin de chercher les paquets qui Ă©taient nĂ©cessaires pour cette tĂąche et dont vous nâavez plus besoin pour toiletter le systĂšme. Vous souhaitez une version de Firefox trĂšs rĂ©cente mais une de LibreOffice plus ancienne ? Flatpak permet de concilier les deux facilement comme nous lâavons vu. Et chaque application nâaura accĂšs quâaux donnĂ©es et ressources pour lesquelles elle dispose de votre autorisation, limitant les problĂšmes dus Ă des bogues ou des failles. Mais, bien sĂ»r, cela a un coĂ»t. Besoin de plus de bande passante, de mĂ©moire, de temps processeur et dâespace disque. Le systĂšme dans son ensemble est aussi plus complexe Ă apprĂ©hender, de nouvelles choses sont Ă apprendre. AltStyle ă«ăăŁăŠć€æăăăăăŒăž (->ăȘăȘăžăă«) / ăąăăŹăč: ăąăŒă: ăăă©ă«ă éłćٰăă©ăŠă¶ ă«ăä»ă é èČćè»ą æćæĄć€§ ăąăă€ă«
AltStyle ă«ăăŁăŠć€æăăăăăŒăž (->ăȘăȘăžăă«) / ăąăăŹăč: ăąăŒă: ăăă©ă«ă éłćٰăă©ăŠă¶ ă«ăä»ă é èČćè»ą æćæĄć€§ ăąăă€ă«