Guix petit à petit (3) : transactions et générations
Sommaire :
Avant d'aller plus loin dans cette série sur Guix, je dois t'expliquer quelque chose !
Lorsque tu invoques la commande guix package
, tu effectues ce qu'on appelle une transaction. C'est une action dite atomique. Soit elle réussit, soit rien ne se passe. Il n'y a pas de « le système a crashé en plein milieu alors on est dans un état bizarre ». Je trouve ça très rassurant !
Dans le cas où une transaction sur les paquets réussit, elle a pour effet de générer une nouvelle génération d'un profil (avec des paquets mis à jour, ou des paquets en moins, en plus, …).
Donc, en plus d'une liste de paquets par profil, tu te retrouves avec une liste de générations par profil ! Que tu peux consulter avec la commande suivante :
$ guix package --list-generations
[…]
Génération 3 08 mai 2020 08:02:35
+ git 2.26.0 out /gnu/store/117r6fg7cd5cwmmwnda98cxhmdrw6ibg-git-2.26.0
Génération 4 08 mai 2020 08:57:29
+ glibc-locales 2.29 out /gnu/store/03nvilh2x4z07dxv7h13gh986vvgpnsf-glibc-locales-2.29
Génération 5 08 mai 2020 09:48:35
+ git 2.26.2 out /gnu/store/abqiwgyzlwjz16vd9gvmlnq8zcy12b2l-git-2.26.2
- git 2.26.0 out /gnu/store/117r6fg7cd5cwmmwnda98cxhmdrw6ibg-git-2.26.0
[…]
Elles sont numérotées pour pouvoir s'y référer facilement et tu peux aussi voir la date et l'heure de la génération.
Tu peux naviguer d'une génération à une autre comme si tu naviguais dans le temps. C'est pratique dans le cas où tu as besoin d'annuler la dernière génération si elle est instable. Ou alors pour comparer le comportement du système entre différentes générations. Bref, chacun y trouvera son utilité ! Voici la commande à utiliser pour ce faire :
# Bascule vers la génération 42
$ guix package --switch-generation=42
# Bascule vers la génération suivante
$ guix package --switch-generation=+1
Pour revenir une génération en arrière, tu peux exécuter la commande :
$ guix package --roll-back
Attention : Toute nouvelle transaction réécrira l'historique depuis la génération où tu es. Risque d'altérer le futur ;–) !
Liens utiles :
Merci beaucoup d'avoir lu cet article !
N'hésites pas à me donner ton avis, proposer une idée d'amélioration, ou poser une question ! Pour ce faire, laisses un commentaire plus bas ou contactes-moi
Abonnes-toi pour ne pas manquer les prochains :
– articles via Mastodon @jeko@write.as et RSS
– screencasts via Peertube jeko@video.tedomum.net et RSS
Et encore plus important, partages ce blog et dis à tes amis que c'est le meilleur blog de l'histoire du logiciel libre ! Sans dec'