Parfois, quand vous mettez à jour une application, la nouvelle version peut poser des problèmes ou ne pas être compatible avec un flux de travail. Alors, en attendant une version corrigeant les problèmes, une solution consiste à revenir à une version précédente de l’application pour retrouver un état fonctionnel pour vous… Dans ce guide, je vais vous montrer comment downgrader (en bon français, rétrograder ou revenir à une version antérieure) une application installée depuis un paquet Flatpak.
Aussi, avant d’aller plus loin, voici une petite précision :
Le système Flatpak ne permet pas, malheureusement, d’installer directement une version spécifique depuis un dépôt (comme le Flathub). Il ne permet que d’installer la dernière version disponible.
Alors pour avoir une version spécifique, il faudra procéder en deux étapes :
- Installer la dernière version depuis le dépôt
- Rétrograder le paquet Flatpak vers la version voulue comme nous allons le voir ci-dessous…
Table des matières
Downgrader (rétrograder) un paquet flatpak
Contrairement à l’installation d’un paquet flatpak qui ne nécessite pas de privilège spécifique, pour rétrograder un paquet Flatpak, il faut des droits administrateur et donc utiliser
sudo
.
Étape 1 : récupérer l’Application ID du paquet Flatpak à downgrader
L’application ID est l’identifiant utilisé pour installer un paquet Flatpak ou le lancer en ligne de commande.
Pour le connaitre, vous avez plusieurs façons de faire. En voici deux :
- Allez sur la fiche de l’application sur le Flathub et descendez jusqu’à la section commande line instruction :
- Ouvrez un terminal et listez les applications flatpak installées.
flatpak list --app
Et notez l’ID correspondant à l’application que vous souhaitez rétrograder.
Pour voir tous les paquets Flatpak installés, faites :
flatpak list
ou pour voir uniquement les Runtimes (dépendances) :
flatpak list --runtime
Je vais, dans ce tutoriel, rétrograder l’application LibreOffice dans une version antérieure. Son application ID est org.libreoffice.LibreOffice
.
Étape 2 : Répertorier les versions précédentes disponibles et obtenir le code de commit
Une fois que vous avez obtenu l’ID de l’application, vous devez répertorier les versions précédentes disponibles pour cette dernière.
Pour cela, utilisez, en l’adaptant, la commande suivante :
flatpak remote-info --log flathub <Application ID>
avec <Application ID>
à remplacer par celui de l’application en question.
Et copiez le code de commit de la version voulue.
Par exemple, dans le cas de LibreOffice, la commande sera :
flatpak remote-info --log flathub org.libreoffice.LibreOffice
Pour copier/coller un texte dans un terminal :
- Sélectionnez-le avec la souris,
- Faites un clic-droit sur la sélection
- Et choisissez Copier dans le menu
Puis pour le coller, faites un clic droit et dans le menu contextuel, choisissez
Coller
.
Le nombre de versions disponibles varie en fonction des applications et avec le temps.
Étape 4 : Downgrader (rétrograder) le paquet Flatpak
Les informations récupérées précédemment (Application ID et le code de commit) vont servir dans la commande utilisée pour rétrograder (downgrader) la version d’un paquet flatpak.
Cette commande prend la forme suivante :
sudo flatpak update --commit=<commit_code> <Application ID>
Dans le cas de l’exemple avec LibreOffice, pour revenir à la version 7.3.5 (plus ancienne version disponible au moment où j’écris ce guide), la commande sera :
sudo flatpak update --commit=25271a241210447920e29b31b37ba5ea6fd35b7bb3c498e7988c8e58e6397081 org.libreoffice.LibreOffice
La commande pour lister les applications flatpak prédécèdent utilisé à l’étape 1, vous permet de contrôler que vous avez la version voulue du paquet.
Étape 5 : Protéger le paquet rétrogradé des futures mises à jour automatiques
Si par la suite, vous faites automatiquement ou manuellement une mise à jour des paquets flatpak (commande flatpak update), la dernière version du paquet que vous avez rétrogradé va s’installer.
Pour éviter cela, vous devez dire au système de ne pas mettre à jour ce paquet. Cela se fait avec la commande suivante :
sudo flatpak mask <Application ID>
Soit, pour notre exemple avec LibreOffice :
sudo flatpak mask org.libreoffice.LibreOffice
Alors, si vous faites une mise à jour des paquets flatpak, celui de LibreOffice ne se mettra plus à jour.
Pour retirer le masque empêchant de mettre à jour un paquet Flatpak, faites :
sudo flatpak --remove mask <Application ID>
Par exemple :
sudo flatpak --remove mask org.libreoffice.LibreOffice
Pour aller plus loin
- La page Tips & Tricks sur le GitHub de Flatpak indiquant comment rétrograder un paquet Flatpak
- La documentation avec les commandes de références