# etc-update rückgängig machen?

## mentor69

Hallo!

Hab nach einem ETC-Update (-3), mein System zerschossen.

Kann man das ETC- Update rückgängig machen?

mentor

----------

## wulfkuhn

Das hängt wohl davon ab ob du ein Backup gemacht hast.

----------

## mentor69

Oh, ich hatte gehofft, dass automatisch ein Backup gemacht wird.

Folgende Fehlermeldung hab ich beim Hochfahren, vielleicht könnt Ihr damit ja was anfangen:

fsck: fsck.xfs: not found

fsck: Error 2 while ecxecuting fsck.xfs for /dev/ROOT

fsck.ext2: Noch such file or directory while trying to open /dev/BOOT

/dev/BOOT: The Superblock could not read or does not describe a correct ext2 filesystem. If the device is valid and it really countains an ext2 filesystem, then the Superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 <device>

mentor

----------

## beejay

Die fstab wurde überspielt. Einfach wieder anpassen...und das nächste mal vorsichtiger sein und besser lesen was da steht  :Wink: 

----------

## RealGeizt

...oder die datei wo er ersetzen will vorher sichern...du siehst ja welche das ist und wenn was nicht geht einfach die alte wieder reinspielen.

damit du nicht beim booten hängen bleibst, solltest du dir dann auch nochmal angucken was er reingeschrieben hat.

dann brauchst du vielleicht nicht unnötig mit der livecd booten und dein system manuell mounten um dann den fehler wieder auszubügeln  :Wink: 

----------

## mentor69

Danke!! Das wars!!!

Mußte die fstab und auch die rc.conf editieren und seitdem läuft die Kiste wieder!!

Riesengroßes Dankeschön!!!

mentor

PS: Welchen Sinn hat eigentlich etc-update??   :Twisted Evil: 

----------

## wulfkuhn

Den, dass dir das nicht bei jedem Update passiert.

----------

## DarKRaveR

etc-update ist zwar auf der einen seite praktisch, um updates bei configs/init scripten zu machen.

Was mich dabei stört, jede von Hand gemacht Änderung würde zurückgenommen. Daher merge ich immer interaktiv oder schmeiße die updates teilweise einfach weg.

(Grade beim baslayout, wo die Änderungen auch noch das script 'kaputt' gemacht haben ist das mit etc-update ärgerlich - Da denkt man immer zuerst, ach hätte ich etc-update alles machen lassen - obwohl das update fehlerhaft war. Und dann hätte es einen alle Configs gekostet.

Also mehr Intelligenz wäre hier schon gefragt, so ein bisserl wie bei cvs.

Anstatt quasi das neue etc file zu nehmen, könnte mann doch eher ein diff nehmen. Das würde dann auch nur wirkliche Änderungen betreffen ?

Wird da an was anderem gearbeitet, was etwas mehr 'intelligenz' bringt ?

----------

## wulfkuhn

Genau das kann man mit etc-update machen.

----------

## DarKRaveR

nicht wirklich, mann muß alles von hand mergen, konfliktbereinigung geht auch 'intelligenter' - Aber egal ....

----------

## ian!

 *DarKRaveR wrote:*   

> [...] konfliktbereinigung geht auch 'intelligenter' - Aber egal ....

 

Dann schreib' was..

----------

## Genone

Ich sollte mich wohl wirklich mal dransetzen den Patch-basierten Ansatz umzusetzen   :Rolling Eyes: 

----------

## DarKRaveR

In die Richtugn von Patches dachte ich auch. Aber nehmen wir mal an, einige Zeilen müssen ausgetauscht werden/geändert. In dem Patch ist der Unterschied von letzter zu aktueller Version. Statt einfach nur zu patchen, müßte man bei den zu ersetzenden Teilen schauen, ob dort etwas verändert wurde vom User. Wenn ja, einen Konflikt melden, wer dran rumschraubt, kann ja quasi interaktiv mergen in dem Teilabschnitt.

Trickreich wird es zu bemerken, wenn ein Teil der Datei vom User geändert wurde und somit die 'Originalzeilen' nicht mehr exakt auffindbar sind usw.

Beides unter einen Hut zu bringen dürfte ne gute Herausforderung sein.

----------

## Genone

Die Idee ist für jedes Paket die Original Konfigurationsdateien in der Paketdatenbank mitzuspeichern und bei Updates ein Diff zwischen neuer und alter Originaldatei zu machen. In etc-update (und anderen Update Tools) überprüft man dann, ob dieser Patch auf die aktuelle Konfigurationsdatei anwendbar ist, wenn ja sollte eine automatische Ersetzung etwas weniger gefährlich sein (da ja nur Teile gepatcht werden, die nicht vom Benutzer modifiziert wurden), wenn der Patch nicht anwendbar ist kann man immer noch die bisherige Methode anwenden, da die Originaldatei ja in der Paketdatenbank vorhanden ist.

Der grosse Nachteil ist dass man nicht nur etc-update sondern auch portage selber anpassen muss, ausserdem erzeugt es wieder Probleme mit externen Tools wie cfg-update.

----------

## spitzwegerich

Ich hab in der /etc/etc-update die Variable diff_command auf "vim -d %file1 %file2" umgestellt. Gut, man muss sich erstmal die diff-Befehle vom vim reinziehen (do für "diff obtain" tuts eigentlich schon), aber danach macht ein etc-update fast schon Spass.

----------

## primat

Meiner Meinung nach würde es schon viel helfen, wenn man irgendwie feststellen könnte, welche files in /etc vom user verändert wurden und alle andern einfach gegen die neuen auszutauschen.

Das würde bei mir schon um einiges schneller gehen!

Ich habe mir schon überlegt in alle von mir veränderten config Dateien einen Marker zu setzen und mir einen Script zu schreiben, der alle die keinen Marker haben automatisch austauscht!

Gruss

Sebo

----------

## swimmer

 *primat wrote:*   

> Meiner Meinung nach würde es schon viel helfen, wenn man irgendwie feststellen könnte, welche files in /etc vom user verändert wurden und alle andern einfach gegen die neuen auszutauschen.
> 
> Das würde bei mir schon um einiges schneller gehen!
> 
> Ich habe mir schon überlegt in alle von mir veränderten config Dateien einen Marker zu setzen und mir einen Script zu schreiben, der alle die keinen Marker haben automatisch austauscht!
> ...

 

Hmm - die Idee finde ich eigentlich nicht so gut - mir straeuben sich einfach alle Nackenhaare wenn ich daran denke dass bei einem Update irgendwelche config-Dateien einfach so ueberschrieben werden!

Ich kann dem was spitzwegerich geschrieben hat vollstaendig zustimmen: 'vimdiff' bzw. 'vim -d %file1 %file2' ist sehr hilfreich und auch relatief einfach zu bedienen. Bei groesseren  emerges (sicher bei 'baselayout'!) mache ich sowieso vorher *immer* ein Backup von '/etc/' - das beruhigt ungemein  :Wink: 

Was genone beschrieben hat wollte ich sowieso schon immer einmal mit den eigenen Hausmitteln (sprich einem revision system wie Subversion oder CVS) ausprobieren habe mich aber noch nicht getraut auf meinem Hausmaschinchen  :Smile: 

Da ich diese Woche aber einen weiteren PC veredele mit Gentoo werde ich nach der Installation volgende Schritte durchlaufen:

- ein Repository anmachen mit  

```
'svnadmin create ~/backup/etc/'
```

- den bestehenden /etc-Baum importieren mit 

```
cd /etc && svn import -m 'Initial import' file:///root/backup/etc
```

- eine working copy auschecken in '/tmp' mit 

```
cd /tmp && svn co file:///root/backup/etc
```

- den bestehenden /etc-Baum ersetzen durch die working copy mit 

```
cd / && mv etc unused-etc && mv tmp/etc .
```

Bis auf den letzten Schritt sehe ich keine Probleme & bei der Ersetzungsaktion muss ich einfach gucken ob was schiefgeht  :Smile:  (Die LiveCD liegt immer neben dem Monitor  :Wink:  )

Nun ist es ein Kinderspiel *vor* jedem emerge eben zu gucken ob sich was veraendert hat in /etc mit 

```
svn diff
```

 und ggf. Aenderungen einzuchecken mit 

```
svn commit
```

 und selbstverstaendlich auch *nach* jedem Update dieselbe Prozedur auszufuehren  :Wink: 

Ich lasse es Euch wissen

Stefan

----------

## swimmer

Hallo Leute, 

Versuch gescheitert da Subversion keine symlinks unterstuetzt und es in '/etc/' nur so wimmelt von symlinks  :Sad: 

Wenn jemand was anders rausgefunden hat lass' es uns wissen!

greetz

Stefan

----------

## musv

Also ehrlichgesagt, weiß ich nicht, was ihr da für Probleme habt.

Wenn ich etc-update eingeb, werden mir immer alle zu ändernden Config-Dateien angezeigt. Die wähle ich dann einzeln an, wenn ich denk, daß manche Dateien lieber nicht geändert werden sollten. Und nach der Einzelanwahl werden mir die jeweiligen Unterschiede zwischen Update und Original angezeigt. Falls mir das Update nicht paßt wirds weggeschmissen, oder ich übertrage bestimmte Einträge mit dem Editor auf die alte Config-Datei.

etc-update Standardversion. Wo ist das Problem? Benutzerfreundlicher gehts doch eigentlich fast gar nicht.

Wer alle Config-Dateien automatisch ändern läßt, muß halt damit rechnen, daß eigene Änderungen verloren gehen. Aber für sowas werden ja genug Optionen bei etc-update angeboten - und man muß nichtmal 'n Manual dafür lesen. Steht alles auf dem Bildschirm.

Sven

----------

## swimmer

Oh ich habe ueberhaupt kein Problem - es war nur so eine Idee zum Ausprobieren  :Wink: 

Fakt bleibt dass ich vor *jedem* groesseren Update ein Backup von '/etc' mache - sollte wirklich etwas schiefgehen habe ich auf jeden Fall noch eine Rueckversicherung ...

Fuer den Rest sind die Bordmittel (etc-update mit vimdiff) sicherlich voellig ausreichend.

Greetz

Stefan

----------

## spitzwegerich

Ich hab mal über 2 Ecken gehört, dass jemand sein /etc mit einem Versionsprogramm überwacht. Sollte das Gerücht stimmen, dann muss es auch irgendwie machbar sein.

Unterstützt CVS symlinks?

----------

## swimmer

 *spitzwegerich wrote:*   

> Ich hab mal über 2 Ecken gehört, dass jemand sein /etc mit einem Versionsprogramm überwacht. Sollte das Gerücht stimmen, dann muss es auch irgendwie machbar sein.
> 
> Unterstützt CVS symlinks?

 

Hmm - ich denke nicht:

-> pinfo cvs  *Quote:*   

> Special Files
> 
> *************
> 
>    In normal circumstances, CVS works only with regular files.  Every
> ...

 

Auch Google laesst sich hier eher negativ darueber aus ...

greetz

Stefan

----------

## øxygen

Subversion.

----------

## swimmer

 *øxygen wrote:*   

> Subversion.

 

Nope.

Die unterstuetzen keine symlinks - ich habe dies von den Entwicklern via IRC-channel gehoert ...

greetz

Stefan

----------

## dl7und

Nutzt man dispatch-conf statt etc-update, dann werden zumindest die ersetzten Dateien in /etc/config-archive (muss man von Hand anlegen) gesichert.

----------

