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. ![Logo de Fedora Silverblue](https://blog.fedora-fr.org/public/renault/Illustrations/silverblue-logo.png) ---- [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 ``` [![Mise Ă  jour de Fedora Silverblue avec GNOME Logiciels](https://blog.fedora-fr.org/public/renault/Silverblue/.Mise_a_jour_Silverblue_m.png)](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. [![Menu GRUB avec les Ă©tats d’OSTree](https://blog.fedora-fr.org/public/renault/Silverblue/.GRUB_Silverblue_m.png)](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. [![Notez le symbole dans le prompt qui signifie que nous sommes dans un conteneur](https://blog.fedora-fr.org/public/renault/Silverblue/.Podman_m.png)](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. [![GNOME Logiciels gĂšre les Flatpak et indique sa provenance](https://blog.fedora-fr.org/public/renault/Silverblue/.GNOME_Logiciels_Flatpak_m.png)](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 ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /