apt-get revert / system recovery

Pagina: 1
Acties:
  • 146 views sinds 30-01-2008
  • Reageer

  • edm
  • Registratie: December 2000
  • Laatst online: 13-10-2024
Ik denk dat het de meeste mensen wel eens overkomen is, na een apt-get upgrade denken van o neeeee spijt. Ik ben bekend met de switch apt-get -u upgrade, zodat je weet wat er gaat gebeuren maar soms in de heat of the moment mis je wel eens wat en gaat er wat fout (vooral bij een mixed testing/unstable systeem).

Of soms wordt er het een en ander geinstalleerd wat gewoon weg minder werkt dan wat je had (b.v. een xfree86-common upgrade op mijn laptop resulteerde er niet al te lang geleden in dat ik in 1 x met een roze scherm zat, de enige oplossing na lang graven bleek de savage drivers van Tim Roberts installeren te zijn).

Dus heb ik eens zitten zoeken of er niet een 'o-ik-heb-zo'n-spijt' optie in apt-get zit, die de netgedane upgrade simpel weg undo't. Wat graven op het net leverde niet zoveel op, maar goed als je de juiste zoek term niet hebt wil dat wel eens lukken. Dus weet iemand of het met het apt mogelijk is om een revert optie te geven. Idealiter zou voor mij een upgrade bestaan uit de volgende stappen
1) apt-get update
2) apt-get -u upgrade
3) testen of alles nog werkt
4) apt-get commit / apt-get revert

Ik heb de optie 4 of soortgelijke optie niet kunnen vinden, dus als er mensen zijn die weten of iets soort gelijks mogelijk is zouden die mij dan op het juiste spoor kunnen zetten, of als je vind dat iets dergelijks absoluut niet is wat je wilt dat toelichten?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
creepy@creepy:~$ apt-get --help
apt 0.5.5.1 for linux i386 compiled on May 19 2003 13:08:51
Usage: apt-get [options] command
       apt-get [options] install|remove pkg1 [pkg2 ...]
       apt-get [options] source pkg1 [pkg2 ...]
 
apt-get is a simple command line interface for downloading and
installing packages. The most frequently used commands are update
and install.
 
Commands:
   update - Retrieve new lists of packages
   upgrade - Perform an upgrade
   install - Install new packages (pkg is libc6 not libc6.deb)
   remove - Remove packages
   source - Download source archives
   build-dep - Configure build-dependencies for source packages
   dist-upgrade - Distribution upgrade, see apt-get(8)
   dselect-upgrade - Follow dselect selections
   clean - Erase downloaded archive files
   autoclean - Erase old downloaded archive files
   check - Verify that there are no broken dependencies
 
Options:
  -h  This help text.
  -q  Loggable output - no progress indicator
  -qq No output except for errors
  -d  Download only - do NOT install or unpack archives
  -s  No-act. Perform ordering simulation
  -y  Assume Yes to all queries and do not prompt
  -f  Attempt to continue if the integrity check fails
  -m  Attempt to continue if archives are unlocatable
  -u  Show a list of upgraded packages as well
  -b  Build the source package after fetching it
  -V  Show verbose version numbers
  -c=? Read this configuration file
  -o=? Set an arbitary configuration option, eg -o dir::cache=/tmp
See the apt-get(8), sources.list(5) and apt.conf(5) manual
pages for more information and options.
                       This APT has Super Cow Powers.

In de man page van apt-get kom ik nog een simulate optie tegen. Maar dit laat alleen maar zien wat er precies zou gebeuren als je door zou gaan met de installatie. Een optie om een net gedane upgrade ongedaan te maken is er niet, want dpkg houd volgens mij geen history van geinstalleerde packeges bij. Je zou wel als er iets mis is geforceerd kunnen "downgraden" naar een versie van de betreffende package die wel werkt.

[ Voor 4% gewijzigd door Creepy op 26-06-2003 18:05 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Hier zijn al eens topics over geweest. [search=apt-get dist-downgrade]
Technisch gezien kan het niet, omdat er vanalles veranderd kan zijn tijdens de upgrade mbt dependencies.

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • edm
  • Registratie: December 2000
  • Laatst online: 13-10-2024
Je zou wel als er iets mis is geforceerd kunnen "downgraden" naar een versie van de betreffende package die wel werkt.
Ik dacht ook dat dit mogelijk was totdat ik dus naar het commit/revert verhaal op zoek ging, toen kwam ik dit tegen:
http://archives.neohapsis...f/linux/2003-q2/0013.html

In deze thread maakt iemand een opmerking dat dit niet mogelijk was met apt. Er wordt ook melding gemaakt van LiveUpgrade (LIve Upgrade gives you a backout plan,
which rpm, apt, et al, do not. Sun did not release LU to replace
the pkg* commands. ) en cvsup voor free-bsd systemen, welke iets soort gelijks doen...

Verwijderd

Dat is me 1x overkomen met Sid + Libc upgrade ja :X dat was uiteindelijk wel te fixen, gelukkig.

1) OF Stable draaien OF Testing OF Unstable; dus niet een combinatie van Testing en Unstable
2) Mijn ervaring is dat als je Stable draait je wel sommige packages uit Testing kunt halen en dan met een beetje hacken kom je eruit. Jij doet ook zoiets. Hoe kun je dan uitvogelen of het daarna wel werkt? De changes bekijken in de packages. De dependancies bekijken. Geen zin in? Tja dan kun je m.i. beter compleet op 1 versie draaien ipv. wazige combinaties. Bij Stable + Testing packages heb je dit probleem niet omdat Stable nooit geupgrade wordt behalve een security fix.
3) Als je 100% zeker wilt zijn dat niks in de soep draait na een upgrade draai dan Stable.
4) Als je bijv. 3rd party KDE3 draait kun je beter eerst de changelog bekijken en/of op het IRC chan (#debian-kde @ Freenode) de topic bekijken en/of als je er nog niet uitkomt: vragen op dat IRC chan.
5) Met CVSUP downgraden werkt ook niet altijd vlekkeloos, met Windows Update ook niet altijd. Ik denk dat dit uiteindelijk best te implementeren is maar de oplossing for now is goed nadenken of en waarom je wilt upgraden alvorens te upgraden. Dan voorkom je naderhand zoveel mogelijk downgrade opties.

  • edm
  • Registratie: December 2000
  • Laatst online: 13-10-2024
Dystopia, laat ik beginnen met je gelijk te geven op alle punten (in principe ;)).


Maar zoals jezelf al aangeeft is het je zelf ook al eens overkomen en dan is het fixen vaak veel werk...

Ik denk dat het voor apt niet zo'n groot probleem moet zijn om de mogelijkheid te bieden om alvorens je upgrade te doen en backupje te maken, want er is precies bekend wat waar geinstalleerd is... Een revert moet dan geen groot probleem zijn en ik denk dat het niet voor niets is dat de ander *nices een dergelijk systeem geimplementeerd hebben, toch?

Verder zijn mixed mode omgevingen redelijk in de hand te houden met /etc/apt/preferences en vraagt de debian policy zo nu en dan gewoon om het installeren van third party software of spullen uit testing/unstable (idd kde3 b.v.)...

Verwijderd

edm schreef op 26 June 2003 @ 19:21:

Maar zoals jezelf al aangeeft is het je zelf ook al eens overkomen en dan is het fixen vaak veel werk...
Ja, het probleem dat ik me nog goed herinner was met libc. Doe eens: ldd /usr/bin/apt-get
Oeps! :X er was wel een fix voor, deze stond destijds in #debian @ FN. Problemen met Sid staan daar wel vaker aangegeven in /topic. Handig dus!
Ik denk dat het voor apt niet zo'n groot probleem moet zijn om de mogelijkheid te bieden om alvorens je upgrade te doen en backupje te maken, want er is precies bekend wat waar geinstalleerd is... Een revert moet dan geen groot probleem zijn en ik denk dat het niet voor niets is dat de ander *nices een dergelijk systeem geimplementeerd hebben, toch?
Er zijn enkele hoofdcomponenten die constant in ontwikkeling zijn waarbij zo'n apt-get reverse niet de oplossing zou zijn. Zoals bijv. dat libc probleem. Een statische binary die een reverse zou doen zou goed zijn deze zou dan net als apt* de packages uit /var/cache/apt/archives halen.

Als je je systeem echt fubar'ed hebt kun je een image gebruiken oid. van dat systeem. Dat is ook handig wanneer je meerdere Deb desktop/ws bakjes hebt zoals een uni/internetcafe dat bijv. heeft.

Hoe precies denk jij dan dat apt die backup zou moeten maken? Ik dacht aan de hand van wat er op dat moment draait die packages + versie 'imaginen' waarbij na 'reverse' dmv. apt-xxx static binary (om probs like libc te voorkomen; maar is de bin wel wat groter!) alles teruggedraaid wordt zoals bij die 'image' ervan uitgaande dat de oude packages nog ergens bestaan (let's hope... /var/apt/cache/archives dus niet cleanen...)? Ik kan hier nog niet een argument tegen verzinnen waarom dit onmogelijk is.
Verder zijn mixed mode omgevingen redelijk in de hand te houden met /etc/apt/preferences en vraagt de debian policy zo nu en dan gewoon om het installeren van third party software of spullen uit testing/unstable (idd kde3 b.v.)...
Nog nooit naar gekeken, thanks! Eens even mee experimenteren; ik heb een waslijst in /aetc/apt/sources.list waarbij enkele 3rd party packages die hij steeds weer wil verwijderen, ed.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 02-05 18:38

deadinspace

The what goes where now?

edm schreef op 26 June 2003 @ 17:52:
Ik ben bekend met de switch apt-get -u upgrade, zodat je weet wat er gaat gebeuren maar soms in de heat of the moment mis je wel eens wat en gaat er wat fout
Niet wat je bedoelt, maar je kunt in /etc/apt/apt.conf het volgende opnemen:
code:
1
Apt::Get::Show-Upgraded "true";

Dan laat hij altijd zien welke packages hij gaat upgraden, zonder dat je de -u optie hoeft te geven. Ik persoonlijk zet die optie altijd in /etc/apt/apt.conf op systemen die ik beheer :)
Dus heb ik eens zitten zoeken of er niet een 'o-ik-heb-zo'n-spijt' optie in apt-get zit, die de netgedane upgrade simpel weg undo't. Wat graven op het net leverde niet zoveel op, maar goed als je de juiste zoek term niet hebt wil dat wel eens lukken. Dus weet iemand of het met het apt mogelijk is om een revert optie te geven. Idealiter zou voor mij een upgrade bestaan uit de volgende stappen
1) apt-get update
2) apt-get -u upgrade
3) testen of alles nog werkt
4) apt-get commit / apt-get revert
Ik ben er vrij zeker van dat dat niet bestaat (maar ik kan me natuurlijk vergissen).

Het gebeurt sowieso standaard niet. Als je upgrade, dan worden de files van een oude package overschreven door de versies uit de nieuwe package, en niet gebackupped -> ergo geen revert.

Maar wat je wel kunt doen is problematische packages downgraden, door de deb te bemachtigen en te installeren met dpkg -i blaat.deb.

De vraag is hoe je dan aan de oudere debs komt, maar hier zijn meerdere mogelijkheden voor. Sowieso kun je op elk moment van een op jouw systeem geinstalleerd package weer een deb maken met dpkg-repack.

Verder zou je alle bij een apt-get upgrade gedownloade debs (staan in /var/cache/apt/archives/ ) na een upgrade kunnen bewaren. Mocht een volgende upgrade dan problemen opleveren, dan heb je die packages nog. Merk op dat apt-get upgrade aan het einde vraagt of hij gedownloade packages moet weggooien. Als je dat bevestigend beantwoordt, dan gooit hij de packages in /var/cache/apt/archives/ weg.

Dan is er nog http://snapshot.debian.net/ , een site die snapshots van Debian Sid heeft. Je kunt van die site de debs downloaden van de versie die op willekeurig moment afgelopen jaar in Sid zaten. Werkte een bepaalde package vorige maand beter? Haal hem van die site :)

Merk op dat dit je niet beschermt tegen rampen als die van libc. Als libc kapot is, dan is het probleem vrij ernstig en lukt dpkg -i oudelibc.deb sowieso ook niet. Problemen met drivers in een nieuwere XFree86 package (zoals jij beschreef) kun je er wel mee repareren.
dawuss schreef op 26 juni 2003 @ 18:13:
Hier zijn al eens topics over geweest. [search=apt-get dist-downgrade]
Technisch gezien kan het niet, omdat er vanalles veranderd kan zijn tijdens de upgrade mbt dependencies.
Dat ging meer over het downgraden naar een andere tree. Van Unstable naar Testing bijvoorbeeld, of van Testing naar Stable. Ook dat is niet onmogelijk, maar ook niet echt makkelijk.

Enkele packages downgraden is vrij makkelijk en zelden een probleem.

  • edm
  • Registratie: December 2000
  • Laatst online: 13-10-2024
Verwijderd schreef op 26 June 2003 @ 20:45:

Hoe precies denk jij dan dat apt die backup zou moeten maken? Ik dacht aan de hand van wat er op dat moment draait die packages + versie 'imaginen' waarbij na 'reverse' dmv. apt-xxx static binary (om probs like libc te voorkomen; maar is de bin wel wat groter!) alles teruggedraaid wordt zoals bij die 'image' ervan uitgaande dat de oude packages nog ergens bestaan (let's hope... /var/apt/cache/archives dus niet cleanen...)? Ik kan hier nog niet een argument tegen verzinnen waarom dit onmogelijk is.
Ik dacht niet aan een restore aan de hand van de oude package, dan moet je er nl zeker van zijn dat die betreffende package nog in de archives staat en dat lijkt me weer fout gevoelig. Ik dacht aan een iets intensiever systeem dat gewoon botweg de te overschrijving package weer terug inpakt en dan pas de upgrade doen. Maar goed ik heb nog nooit echt naar de internals van apt gekeken. Misschien is het wel simpeler om de packages te bewaren, dan te upgraden. Bij een revert de nieuwe de 'de-installen' en de vorige te installen. Bij een commit wordt de oude package verwijderd en in plaats daarvan de nieuwe voor de volgende upgrade 'klaar gezet'.

Misschien iets om een keer op de developer mailing list te vragen of er interesse bestaat voor iets dergelijks en hoe dat het beste te implementeren is?
Niet wat je bedoelt, maar je kunt in /etc/apt/apt.conf het volgende opnemen:

code:
--------------------------------------------------------------------------------
Apt::Get::Show-Upgraded "true";

--------------------------------------------------------------------------------
Thanks, weer wat geleerd!
De vraag is hoe je dan aan de oudere debs komt, maar hier zijn meerdere mogelijkheden voor. Sowieso kun je op elk moment van een op jouw systeem geinstalleerd package weer een deb maken met dpkg-repack.
Ah dat zou dus gebruikt kunnen worden bij het 'backup' stadium.
Problemen met drivers in een nieuwere XFree86 package (zoals jij beschreef) kun je er wel mee repareren.
Dat was niet het ergste, ik dacht dit even te fiksen met een dist-upgrade naar unstable maar kreeg dependency gezeik met glut (volgens mij) die had ik even met dselect verwijderd en toen optie 3 gekozen....... Toen volgde de echte ramp, want zo'n beetje alles werd eerst verwijderd inclusief de pcmcia support ergo geen netwerk meer en toen werd het echt vervelend. Ik heb me vanaf toen voorgenomen om noooooooooit meer overhaaste fixes te gaan doen (right??).

[ Voor 32% gewijzigd door edm op 27-06-2003 20:27 ]


Verwijderd

Wat jij zegt in je eeste alinea bedoelde ik ongeveer.

Die Sid repositry kende ik niet. Mbt. Sid (daar gaat het hier met name over) zou een frontend (evt. in combinatie met je eigen idee) voor snapshot.debian.net wel gaaf zijn dan.
Pagina: 1