Comment annuler ou restaurer une commande «apt-get upgrade» sur Ubuntu?

26

Existe-t-il un moyen dans Ubuntu d'annuler ou d'annuler la dernière mise à niveau après avoir fait un apt-get upgradesi vous n'aimez pas les résultats?

jjclarkson
la source
Pas avec beaucoup de travail, ça n'en vaudrait pas la peine. Pouvez-vous sauvegarder votre / home et recommencer? Qu'est-ce que tu n'as pas aimé?
user10547
Je ne l'ai pas encore fait, mais c'est un serveur de production et je dois être sûr qu'il n'y a pas d'incompatibilité avec notre configuration personnalisée PHP / MySQL / Apache2, et revenir rapidement s'il y en a un. J'aimerais mettre à niveau car je pense que cela résoudra un autre problème que j'ai.
jjclarkson
À moins que vous n'ayez effectué une mise à niveau distante, je ne vois pas quels résultats il ne faut pas aimer, car ce sont probablement des mises à jour de sécurité .
LiraNuna
Si vous avez une installation personnalisée, il est de votre responsabilité d'enregistrer les correctifs et de les appliquer à la version actuelle.
LiraNuna
2
S'il s'agit d'un serveur, essayez un serveur de développement avant de mettre à niveau celui de production
solarc

Réponses:

5

aptitudevous donne accès à toutes les versions d'un paquet si elles sont disponibles selon la gestion des paquets Debian .

user28725
la source
2.7.3 pourrait vous aider à revenir à stable. 2.7.16 explique l'enregistrement et la restauration de l'état du dpkg. dpkg-repack vous permet de "compresser" un seul paquet.
joeytwiddle
5

Je suis tombé sur le blog Blogstatic de Hartman: Comment annuler une mise à jour dans Ubuntu Lucid

La première étape pour annuler la mise à jour incriminée a été de savoir de quelles mises à jour il s'agissait exactement. Après avoir cherché sur certains forums, je suis tombé sur un moyen de voir mon historique de mise à jour: Ouvrez le gestionnaire de paquets synaptic ("sudo synaptic" dans le terminal). Dans la barre de menus, cliquez sur Fichier -> Historique et vous verrez toutes vos mises à jour triées par date.

Malheureusement, j'avais installé une vingtaine de mises à jour aujourd'hui et je ne savais pas laquelle avait causé le problème. En parcourant chacun des packages nommés dans la liste Historique, j'ai pu rétrograder quelques-uns à la fois jusqu'à ce que le problème soit résolu et que j'aie identifié la mise à jour incriminée. Pour faire ça:

Utilisez la barre de recherche pour trouver le package que vous souhaitez rétrograder. Une fois que vous avez trouvé ce que vous cherchez, cliquez sur le package pour le sélectionner. Dans la barre de menus, cliquez sur Package -> Forcer la version et sélectionnez la version précédente du package dans le menu déroulant. Cliquez sur le bouton "Appliquer" pour appliquer la rétrogradation.

Manav Brar
la source
1
Je m'attends à ce que tout le monde ici connaisse les bases de la recherche de la dernière mise à jour incriminée:
Manav Brar
2
Sur quoi portait cette modification? Avez-vous une autre question? Voulez-vous que nous jouions à un jeu de devinettes?
slhck
5

J'ai dû le faire aujourd'hui sur mon système Debian. Tout d'abord, j'ai identifié la plage de temps au cours de laquelle la mise à niveau incriminée s'est produite et j'ai récupéré les entrées de journal en donnant les anciens et nouveaux numéros de version des packages mis à niveau:

$ awk '$1=="2016-03-20" && $3=="upgrade"' /var/log/dpkg.log
2016-03-20 16:58:22 upgrade libwebkitgtk-3.0-0:amd64 2.4.9-3 2.4.10-1
2016-03-20 16:58:24 upgrade libjavascriptcoregtk-3.0-0:amd64 2.4.9-3 2.4.10-1
2016-03-20 16:58:26 upgrade traceroute:amd64 1:2.0.22-1 1:2.1.0-1
2016-03-20 16:58:33 upgrade ethtool:amd64 1:4.2-1 1:4.5-1
2016-03-20 16:58:34 upgrade libsdl1.2debian:amd64 1.2.15+dfsg1-3 1.2.15+dfsg1-4
2016-03-20 16:58:34 upgrade subversion:amd64 1.9.3-2+b1 1.9.3-3
2016-03-20 16:58:36 upgrade libsvn1:amd64 1.9.3-2+b1 1.9.3-3
2016-03-20 16:58:56 upgrade linux-image-amd64:amd64 4.3+70 4.4+71
2016-03-20 16:58:56 upgrade linux-libc-dev:amd64 4.3.5-1 4.4.6-1
2016-03-20 16:59:03 upgrade amd64-microcode:amd64 2.20141028.1 2.20160316.1

Ensuite, j'ai essayé de trouver les fichiers de package encore en cache sur le disque (heureusement pour moi, je n'avais pas exécuté de nettoyage automatique):

$ awk '$1=="2016-03-20" && $3=="upgrade" {gsub(/:/, "%3a", $5); split($4, f, ":"); print "/var/cache/apt/archives/" f[1] "_" $5 "_" f[2] ".deb"}' /var/log/dpkg.log | xargs -r ls -ld
ls: cannot access '/var/cache/apt/archives/ethtool_1%3a4.2-1_amd64.deb': No such file or directory
-rw-r--r-- 1 root root   28820 Dec 18  2014 /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb
-rw-r--r-- 1 root root 1978874 Dec 10 18:22 /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb
-rw-r--r-- 1 root root  185006 Mar 12 00:41 /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb
-rw-r--r-- 1 root root 1317644 Mar  3 11:30 /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb
-rw-r--r-- 1 root root 7679400 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb
-rw-r--r-- 1 root root    6108 Dec 14 06:59 /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb
-rw-r--r-- 1 root root 1075506 Feb  7 21:36 /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb
-rw-r--r-- 1 root root  983174 Mar  3 11:30 /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb
-rw-r--r-- 1 root root   53376 Feb 28 18:35 /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb

Il semble que je n'ai pas l'ancien paquet ethtool pour une raison quelconque. Continuons tout de même en installant de force les anciens fichiers de package:

$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb
dpkg: warning: downgrading amd64-microcode from 2.20160316.1 to 2.20141028.1
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...
Unpacking amd64-microcode (2.20141028.1) over (2.20160316.1) ...
dpkg: warning: downgrading libjavascriptcoregtk-3.0-0:amd64 from 2.4.10-1 to 2.4.9-3
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.10-1) ...
dpkg: warning: downgrading libsdl1.2debian:amd64 from 1.2.15+dfsg1-4 to 1.2.15+dfsg1-3
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...
Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-4) ...
dpkg: warning: downgrading libsvn1:amd64 from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...
Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-3) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
dpkg: warning: downgrading linux-image-amd64 from 4.4+71 to 4.3+70
Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...
Unpacking linux-image-amd64 (4.3+70) over (4.4+71) ...
dpkg: warning: downgrading linux-libc-dev:amd64 from 4.4.6-1 to 4.3.5-1
Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.4.6-1) ...
dpkg: warning: downgrading subversion from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...
Unpacking subversion (1.9.3-2+b1) over (1.9.3-3) ...
dpkg: warning: downgrading traceroute from 1:2.1.0-1 to 1:2.0.22-1
Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.1.0-1) ...
Setting up amd64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
amd64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...
Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:amd64 (1.9.3-2+b1) ...
dpkg: dependency problems prevent configuration of libwebkitgtk-3.0-0:amd64:
 libwebkitgtk-3.0-0:amd64 depends on libwebkitgtk-3.0-common (>= 2.4.9); however:
  Package libwebkitgtk-3.0-common is not installed.

dpkg: error processing package libwebkitgtk-3.0-0:amd64 (--install):
 dependency problems - leaving unconfigured
Setting up linux-image-amd64 (4.3+70) ...
Setting up linux-libc-dev:amd64 (4.3.5-1) ...
Setting up subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64
Errors were encountered while processing:
 libwebkitgtk-3.0-0:amd64

Comme le message d'erreur le disait, l'un de mes packages dépendait d'un package -common juste avant la mise à niveau, mais la mise à niveau l'a supprimé (et apt-get ne le trouve plus). Heureusement, son fichier de package est toujours dans / var / cache / apt, je peux donc simplement l'ajouter à la liste et réessayer:

$ ls -ld /var/cache/apt/archives/libwebkitgtk-3.0-common*
-rw-r--r-- 1 root root 452278 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...
Unpacking amd64-microcode (2.20141028.1) over (2.20141028.1) ...
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...
Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-3) ...
Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...
Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...
Unpacking linux-image-amd64 (4.3+70) over (4.3+70) ...
Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.3.5-1) ...
Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...
Unpacking subversion (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.0.22-1) ...
Selecting previously unselected package libwebkitgtk-3.0-common.
Preparing to unpack .../libwebkitgtk-3.0-common_2.4.9-3_all.deb ...
Unpacking libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up amd64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
amd64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...
Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:amd64 (1.9.3-2+b1) ...
Setting up linux-image-amd64 (4.3+70) ...
Setting up linux-libc-dev:amd64 (4.3.5-1) ...
Setting up subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Setting up libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up libwebkitgtk-3.0-0:amd64 (2.4.9-3) ...
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64

Succès! En fait, cela n'a pas résolu mon problème. Mais il a déclassé avec succès les packages, QED.

aecolley
la source
3

J'ai également dû annuler une mise à niveau de paquet aujourd'hui sur quelques serveurs Debian. J'ai réussi à rétablir les packages dans la dernière version en utilisant aptitute, alors que la commande awk suivante était très utile.

( Dans la commande ci-dessous, remplacez la chaîne de date par la date du jour à partir de laquelle vous souhaitez annuler les mises à niveau )

awk 'BEGIN{ start="0" } { if($0 ~ /Log started: 2017-06-20/) { start="1"} if ( start == "1" && $0 ~ /Unpacking.*over/) {gsub(/[\s\t)( ]+/,"",$5); printf("%s=%s ", $2 , $5)}}' /var/log/apt/term.log

examinez la sortie pour vérifier qu'il s'agit bien des packages et des versions à annuler. Ensuite, utilisez aptitute pour effectuer la rétrogradation des packages répertoriés:

aptitute install [paste output here]

J'espère que c'est aussi un gain de temps utile pour les autres.

Andreas Kohlbecker
la source
2

Je ne crois pas, en dehors de prendre une sauvegarde complète des systèmes de fichiers pertinents (ceux qui contiennent /, /bin, /lib, /sbin, /usr, /var, /etcet /boot(qui peuvent tous être sur le système de fichiers) et votre dossier de démarrage) afin que vous puissiez rouler la machine en arrière par la suite.

David Spillett
la source
Je pouvais (et je le ferai probablement) prendre une sauvegarde à nu, mais je voulais une option logicielle qui me permettrait d'annuler la mise à niveau dans un délai plus rapide. La restauration à partir de la sauvegarde sans système d'exploitation peut prendre plusieurs heures.
jjclarkson
1
Vous pouvez vous assurer que vous avez des copies de tous les packages que vous êtes sur le point de mettre à niveau dans leurs versions précédentes (ils sont probablement toujours placés dans votre cache apt quelque part /var) et tous les fichiers de configuration pertinents stockés. Vous pouvez ensuite essayer de forcer une restauration en disant explicitement dpkgd'installer ces versions. Vous pourriez avoir du travail à faire par la suite lorsque vous souhaitez que les mises à niveau normales se produisent, donc ce n'est pas quelque chose que je recommanderais.
David Spillett
Une sauvegarde faite avec rsync (horodatage activé) peut être restaurée assez rapidement, par rapport à une sauvegarde faite avec tar.
joeytwiddle
2

J'exécute mes serveurs linux dans un environnement virtualisé et exécute un cliché juste avant une mise à niveau apt-get, ou toute mise à jour / mise à niveau tierce majeure d'ailleurs.

Ensuite, si quelque chose ne va pas, je reviens simplement et la vie continue jusqu'à ce que je puisse trouver plus d'informations.

Cela est venu très facilement lorsque j'ai mis à niveau ma boîte Ubuntu vers 12.04, et MySQL était en quelque sorte complètement non fonctionnel après la mise à niveau. J'ai reculé, trouvé la réponse plus tard, relancé la mise à niveau, corrigé MySQL et la vie était bonne.

Brain2000
la source
1

Vous pouvez essayer checkinstall

Après vous ./configure; faire votre programme, CheckInstall exécutera make install (ou tout ce que vous lui direz d'exécuter) et gardera une trace de chaque fichier modifié par cette installation, en utilisant l'excellent installwatch ...

Donc, vous pourriez peut-être lui dire d'exécuter aptitude safe-upgrade et il garderait une trace de toutes les modifications apportées par la mise à niveau.

solarc
la source
1

Il y a un projet appelé Nexenta qui combine le noyau OpenSolaris avec l'espace utilisateur Ubuntu. Il fournit un outil pour intégrer ZFS de Solaris et apt de Debian afin de fournir un bouton d'annulation pour les mises à niveau. Voir ici: http://www.nexenta.org/os/TransactionalZFSUpgrades

Plus généralement, vous avez besoin d'un système de fichiers de version. Btrfs pour Linux est en cours de développement.

Ryan C. Thompson
la source
0

J'ai réussi cela plusieurs fois mais je ne le recommanderai pas. Voici ce que j'ai fait (si je me souviens bien):

1) Supprimez tout logiciel non officiel qui n'est pas inclus dans les référentiels ubuntu par défaut (il peut ne pas être requis, mais je le suggère car ils peuvent vous gêner).

2) Modifiez votre /etc/apt/sources.list (et sources.list.d / *) à la version précédente (commentez tous les référentiels non officiels).

3) apt-get update / aptitude update

4) En utilisant aptitude, rétrograder les packages de base (comme X11, bibliothèques, etc.). Il commencera à tirer beaucoup de paquets cassés ... vous devrez donc résoudre chaque cas (vous devez savoir comment le faire en aptitude). Pour le rétrograder, accédez au panneau de description et installez la version (en appuyant sur +) en bas.

5) Répétez # 4 jusqu'à ce que tous les logiciels appartiennent à votre version cible (vérifiez la colonne version dans aptitude).

Ce sont les raisons pour lesquelles je ne recommande pas cette méthode:

  • Cela prend beaucoup de temps (c'est un processus douloureux)
  • Certaines applications peuvent ne pas fonctionner correctement (car elles peuvent toujours avoir la configuration la plus récente). Dans ce cas, vous devrez "purger" et réinstaller.
  • Il existe des mises à jour liées au système qui ne fonctionneront pas après la rétrogradation
  • C'est très risqué car vous pouvez vous retrouver avec un système inutilisable

Je recommande fortement de faire une installation propre et de déplacer votre configuration petit à petit. Cela prend également du temps, mais à la fin, vous avez une version stable.

La raison pour laquelle je l'ai fait était principalement par expérimentation et par désespoir.

lepe
la source
0

DPkg :: Pre-Install-Pkgs et ZFS sur les instantanés Linux

Si vous avez installé votre système d'exploitation sur un système de fichiers ZFS (par exemple, ZFS sous Linux ), vous pouvez configurerapt-get pour exécuterzfs snapshot avant d'installer ou de mettre à niveau quoi que ce soit, ce qui sauvegardera instantanément votre système de fichiers. Cela peut fonctionner avec des mécanismes de sauvegarde autres que les instantanés ZFS, mais je laisserai ce test à d'autres.

Le script

Créez un fichier comme

/etc/apt/apt.conf.d/71backup

avec contenu

// Tell `apt-get' to take a ZFS snapshot before installing or upgrading a
// set of packages:
DPkg::Pre-Install-Pkgs {"/sbin/zfs snapshot rpool/ROOT/debian@apt-get_$(date '+%Y-%m-%d-%H%M')";};

rpool/ROOT/debiandoit être remplacé par le nom du système de fichiers ZFS sur lequel votre système d'exploitation est monté. Vous lui avez donné ce nom lors de la première installation de votre système d'exploitation, et il peut être trouvé sous attribut NAMEavec la commande

# zfs list -t filesystem
NAME ...
...
rpool/ROOT/debian ...
...

Mais ça marche?

Vous feriez mieux de prendre un instantané avant de suivre les conseils de configuration d'une personne Internet aléatoire:

# zfs snapshot rpool/ROOT/debian@$(date '+%Y-%m-%d-%H%M%S')_test
# zfs list -t snapshot | grep rpool
...
rpool/ROOT/debian@2018-08-01-230001_test

Le voilà. Si cela error: fn_borkedse produit rapidement, vous pouvez remettre votre système dans son état actuel avec

# zfs rollback rpool/ROOT/debian@2018-08-01-230001_test

Essayez-le maintenant en installant deux petits jeux qui sont probablement disponibles dans votre dépôt:

# apt-get install tanglet sudoku
...
# zfs list -t snapshot | grep apt\-get
rpool/ROOT/debian@apt-get_2018-08-02-033614

Cet instantané contient votre système de fichiers tel qu'il était avant l'installation des deux jeux.

# exit
$ sudoku

Des moments amusants pour grand-mère, mais vous détestez le sudoku.

$ sudo -i
# zfs rollback rpool/ROOT/debian@apt-get_2018-08-02-033614
# exit
$ sudoku
-bash: /usr/games/sudoku: No such file or directory
$ tanglet
-bash: tanglet: command not found

Après avoir pris plusieurs instantanés, vous pouvez revenir à n'importe quel précédent en ajoutant l' -rindicateur. Dans notre cas, par exemple, essayez

# zfs -r rollback rpool/ROOT/debian@2018-08-01-230001_test

Soyez averti, cependant, que non seulement cela ramènera votre système de fichiers à l'état dans lequel il était lorsqu'il a rpool/ROOT/debian@2018-08-01-230001_testété pris, mais il supprimera également irrémédiablement tous les instantanés ultérieurs. Si vous avez suivi ce post, l'instantanérpool/ROOT/debian@apt-get_2018-08-02-033614 serait maintenant parti.

J'ai testé apt-get upgradesur Debian GNU / Linux avec

# apt-get -t=oldstable install tanglet sudoku
...
# apt-get upgrade
...
# zfs list -t snapshot | grep apt\-get

Ça marche. Un instantané a été créé pour la installcommande, un autre pour leupgrade commande.

Attention : j'ai testé cela pour la première fois aujourd'hui et je sais très peu de choses sur le fonctionnement interne d'apt. Si cela vous casse quelque chose ou comporte des risques que mon esprit étourdi n'a pas pris en compte, veuillez en parler ci-dessous.

LaTeX2enub1336
la source