Come posso annullare o ripristinare un comando "apt-get upgrade" su Ubuntu?


26

C'è un modo in Ubuntu per ripristinare o annullare l'ultimo aggiornamento dopo aver fatto un apt-get upgradese non ti piacciono i risultati?


Non senza molto lavoro, non varrebbe la pena. Puoi salvare / home e ricominciare da capo? Cosa non ti è piaciuto?
user10547

Non l'ho ancora fatto, ma questo è un server di produzione e devo essere sicuro che non ci siano incompatibilità con la nostra installazione personalizzata PHP / MySQL / Apache2, e tornare rapidamente se c'è. Vorrei aggiornare perché penso che risolverà un altro problema che sto riscontrando.
jjclarkson,

A meno che tu non abbia fatto dist-upgrade, non vedo quali risultati non ci debbano piacere, dal momento che questi sono molto probabilmente aggiornamenti di sicurezza .
LiraNuna,

Se hai un'installazione personalizzata, è tua responsabilità salvare le patch e applicarle sulla versione corrente.
LiraNuna,

2
Se è un server, prova un server dev prima di aggiornare quello di produzione
solarc

Risposte:


5

aptitudeti dà accesso a tutte le versioni di un pacchetto se disponibile secondo la gestione dei pacchetti Debian .


2.7.3 potrebbe aiutarti a eseguire il downgrade a stable. 2.7.16 spiega come salvare e ripristinare lo stato di dpkg. dpkg-repack ti permette di "comprimere" un singolo pacchetto.
joeytwiddle,

5

Mi sono imbattuto nel Blogstatic Blog di Hartman: come annullare un aggiornamento in Ubuntu Lucid

Il primo passo per annullare l'aggiornamento offensivo è stato scoprire quali aggiornamenti erano esattamente. Dopo aver cercato in alcuni forum mi sono imbattuto in un modo per vedere la mia cronologia degli aggiornamenti: Apri il gestore pacchetti synaptic ("sudo synaptic" nel terminale). Dalla barra dei menu, fai clic su File -> Cronologia e vedrai tutti gli aggiornamenti ordinati per data.

Purtroppo oggi ho installato circa 20 aggiornamenti e non sapevo quale avesse causato il problema. Cercando in ciascuno dei pacchetti indicati nell'elenco Cronologia, sono stato in grado di eseguire il downgrade alcuni alla volta fino a quando il problema non è stato risolto e ho identificato l'aggiornamento offensivo. Per farlo:

Utilizzare la barra di ricerca per trovare il pacchetto che si desidera effettuare il downgrade. Una volta trovato quello che stai cercando, fai clic sul pacchetto per selezionarlo. Dalla barra dei menu, fare clic su Pacchetto -> Forza versione e selezionare la versione precedente del pacchetto dal menu a discesa. Fai clic sul pulsante "Applica" per applicare il downgrade.


1
Mi aspetto che tutti qui conoscano le basi su come cercare l'ultimo aggiornamento offensivo:
Manav Brar

2
Di cosa trattava quella modifica? hai un'altra domanda? Vuoi che facciamo un gioco d'ipotesi?
slhck,

5

Ho dovuto farlo oggi sul mio sistema Debian. Innanzitutto, ho identificato l'intervallo di tempo in cui si è verificato l'aggiornamento offensivo e ho recuperato le voci del registro fornendo i numeri di versione precedente e nuova dei pacchetti aggiornati:

$ 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

Successivamente, ho provato a trovare i file del pacchetto ancora memorizzati nella cache sul disco (fortunatamente per me non avevo eseguito autoclean):

$ 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

Sembra che non abbia il vecchio pacchetto di ethtool per qualche motivo. Continuiamo comunque installando forzatamente i file del pacchetto più vecchi:

$ 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

Come diceva il messaggio di errore, uno dei miei pacchetti dipendeva da un pacchetto comune poco prima dell'aggiornamento, ma l'aggiornamento lo ha rimosso (e apt-get non lo trova più). Fortunatamente, il suo file di pacchetto è ancora in / var / cache / apt, quindi posso semplicemente aggiungerlo all'elenco e riprovare:

$ 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

Successo! In realtà questo non ha risolto il mio problema. Ma ha declassato con successo i pacchetti, QED.


3

Ho anche dovuto annullare un aggiornamento del pacchetto oggi su un paio di server Debian. Ho ripristinato con successo i pacchetti all'ultima versione usando aptitute, mentre il seguente comando awk è stato molto utile.

( Nel comando seguente sostituire la stringa della data con la data del giorno da cui si desidera ripristinare gli aggiornamenti )

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

rivedere l'output per verificare che questi siano i pacchetti e le versioni da ripristinare. Quindi utilizzare aptitute per eseguire il downgrade dei pacchetti elencati:

aptitute install [paste output here]

Spero che questo sia anche un utile risparmiatore di tempo per gli altri.


2

Credo che non, oltre a fare un backup completo dei file system rilevanti (quelli che contengono /, /bin, /lib, /sbin, /usr, /var, /etce /boot(che possono essere tutti su su filesystem) e il record di avvio) in modo da poter rotolare la macchina di nuovo in seguito.


Potrei (e probabilmente lo farò) fare un backup bare metal, ma volevo un'opzione software che mi permettesse di annullare l'aggiornamento in un intervallo di tempo più veloce. Il ripristino dal backup bare metal potrebbe richiedere diverse ore.
jjclarkson,

1
Puoi assicurarti di avere copie di tutti i pacchetti che stai per aggiornare nelle loro versioni precedenti (probabilmente sono ancora presenti nella tua cache apt da qualche parte in /var) e tutti i file di configurazione rilevanti memorizzati. È quindi possibile provare a forzare un rollback dicendo esplicitamente dpkgdi installare tali versioni. Potresti avere del lavoro da fare in seguito quando vuoi che avvengano i normali aggiornamenti, quindi non è qualcosa che consiglierei.
David Spillett,

Un backup eseguito con rsync (timestamping abilitato) può essere ripristinato abbastanza rapidamente, rispetto a un backup eseguito con tar.
Joeytwiddle,

2

Eseguo i miei server linux in un ambiente virtualizzato ed eseguo uno shapshot appena prima di un aggiornamento apt-get o qualsiasi altro aggiornamento / aggiornamento di terze parti.

Quindi se qualcosa va storto, semplicemente torno e la vita continua fino a quando non riesco a trovare ulteriori informazioni.

Questo è stato molto utile quando ho aggiornato la mia casella Ubuntu a 12.04, e in qualche modo MySQL era completamente non funzionante dopo l'aggiornamento. Sono tornato indietro, ho trovato la risposta più tardi, ho eseguito nuovamente l'aggiornamento, riparato MySQL e la vita era buona.


1

Puoi provare checkinstall

Dopo di te ./configure; crea il tuo programma, CheckInstall eseguirà make install (o qualunque cosa tu gli dica di eseguire) e terrà traccia di ogni file modificato da questa installazione, usando l'eccellente installwatch ...

Quindi forse potresti dirgli di eseguire aptitude safe-upgrade e terrebbe traccia di tutte le modifiche apportate dall'aggiornamento.


1

C'è un progetto chiamato Nexenta che combina il kernel OpenSolaris con lo spazio utente di Ubuntu. Fornisce uno strumento per integrare ZFS di Solaris e apt di Debian al fine di fornire un pulsante di annullamento per gli aggiornamenti. Vedi qui: http://www.nexenta.org/os/TransactionalZFSUpgrades

Più in generale, è necessario un file system con controllo delle versioni. Btrfs per Linux è in fase di sviluppo.



0

L'ho fatto con successo poche volte ma non lo consiglio. Questo è quello che ho fatto (se ricordo bene):

1) Rimuovere qualsiasi software non ufficiale che non è incluso nei repository ubuntu predefiniti (potrebbe non essere necessario, ma lo consiglio perché potrebbero ostacolarti).

2) Cambia il tuo /etc/apt/sources.list (e sources.list.d / *) nella versione precedente (commenta tutti i repository non ufficiali).

3) apt-get update / aptitude update

4) Usando aptitude, esegui il downgrade dei pacchetti core (come X11, librerie, ecc.). Inizierà a lanciare molti pacchetti rotti ... quindi dovrai risolvere ogni caso (devi sapere come farlo in attitudine). Il modo in cui esegui il downgrade è andando al pannello della descrizione e installando la versione (premendo +) in basso.

5) Ripeti # 4 fino a quando tutto il software appartiene alla tua versione di destinazione (controlla nella colonna della versione in aptitude).

Questi sono i motivi per cui non consiglio questo metodo:

  • Ci vuole molto tempo (è un processo doloroso)
  • Alcune applicazioni potrebbero non funzionare correttamente (poiché potrebbero avere ancora la configurazione più recente). In tal caso dovrai "eliminare" e reinstallare.
  • Esistono aggiornamenti relativi al sistema che non funzioneranno dopo il downgrade
  • È altamente rischioso in quanto potresti finire con un sistema inutilizzabile

Consiglio vivamente di fare un'installazione pulita e spostare la configurazione a poco a poco. Ci vuole anche tempo, ma alla fine hai una versione stabile.

Il motivo per cui l'ho fatto è stato principalmente come sperimentazione e come risultato della disperazione.


0

DPkg :: Pre-Install-Pkgs e ZFS su snapshot Linux

Se hai installato il tuo sistema operativo su un file system ZFS (ad esempio, ZFS su Linux ), puoi configurare apt-getl'esecuzione zfs snapshotprima di installare o aggiornare qualsiasi cosa, il quale eseguirà immediatamente il backup del tuo file system. Potrebbe funzionare con meccanismi di backup diversi dalle istantanee di ZFS, ma lascerò questo test ad altri.

Il copione

Crea un file come

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

con i contenuti

// 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')";};

dove rpool/ROOT/debiandovrebbe essere sostituito dal nome del file system ZFS su cui è montato il sistema operativo. Gli hai dato quel nome quando hai installato il tuo sistema operativo per la prima volta e puoi trovarlo sotto l'attributo NAMEcon il comando

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

Ma funziona?

Faresti meglio a scattare un'istantanea prima di seguire i consigli di configurazione di qualche persona di Internet a caso:

# 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

Eccolo. Dovrebbe error: fn_borkedverificarsi presto, è possibile riportare il sistema al suo stato attuale felice con

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

Ora provalo installando due piccoli giochi che sono probabilmente disponibili nel tuo repository:

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

Lo snapshot contiene il tuo file system com'era prima dell'installazione dei due giochi.

# exit
$ sudoku

Momenti divertenti per la nonna, ma tu odi il 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

Dopo che sono state scattate più istantanee, è possibile ripristinare qualsiasi precedente aggiungendo il -rflag. Nel nostro caso, ad esempio, prova

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

Tieni presente, tuttavia, che non solo questo ripristinerà il tuo file system allo stato in cui si trovava al momento dello rpool/ROOT/debian@2018-08-01-230001_testscatto, ma eliminerà anche irrimediabilmente tutte le istantanee successive. Se seguissi questo post, l'istantanea rpool/ROOT/debian@apt-get_2018-08-02-033614sarebbe sparita.

Ho provato apt-get upgradesu un Debian GNU / Linux con

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

Funziona. È stata creata un'istantanea per il installcomando, un'altra per il upgradecomando.

Avvertenza : ho provato questo per la prima volta oggi e so molto poco sui meccanismi interni di apt. Se questo dovesse rompere qualcosa per te o comportare dei rischi che la mia mente benefica non ha preso in considerazione, commenta qui sotto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.