Etc-update

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
Installationsmethoden LiveCDs Kernel & Hardware Laptops & Notebooks Portage System Netzwerke & Services X Software Anderes alphabetischer HOWTO Index



Inhaltsverzeichnis

[Bearbeiten] Vorwort

Jeder kennt das Problem: Man hat etc-update ausgeführt und alle Dateien aktualisieren lassen. Meist war die Folge, dass das System nicht mehr startete und/oder einiges nicht mehr funktionierte wie man es gewohnt war. Das ist der häufigste Newbie-Fehler im Umgang mit Gentoo und dazu gibt's leider noch kein gutes deutsches Howto. Bis jetzt ;)

Obwohl etc-update eigentlich selbsterklärend ist, ist dieses Howto hilfreich, weil viele immer wieder diesen Fehler machen. Es gibt auch einige Leute, die sich nach dem Fehler mitunter ein halbes Jahr nicht wieder an etc-update herangewagt haben.

[Bearbeiten] Schutz von Konfigurationsdateien

Portage überschreibt normalerweise Konfigurationsdateien, außer denen, die sich in geschützten Verzeichnissen befinden. Diese sind in der Variable CONFIG_PROTECT definiert. Die aktuellen CONFIG_PROTECT-Einstellungen kann man sich mit emerge info' anzeigen lassen:

emerge --info | grep 'CONFIG_PROTECT='

Die Ausgabe kann z.B. so aussehen:

CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env \
                /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config \
                /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"

etc-update ist dafür verantwortlich, dem Anwender eine einfache Möglichkeit zu bieten Konfigurationsdateien in diesen Verzeichnissen zu aktualisieren. Das ist mitunter durchaus sinnvoll, wenn zum Beispiel nach einem Hotplug-Update notwendigerweise ein paar Konfigurationsdateien geändert werden müssen, damit hotplug weiterhin seine Funktion korrekt ausüben kann. Es gibt aber auch Konfigurationsdateien, wie z.B. die /etc/fstab oder /etc/group, die bei einem unbedarften etc-update durch Standarddateien überschrieben werden, wie man sie von der Installation her kennt.

[Bearbeiten] etc-update richtig bedienen

[Bearbeiten] etc-update aufrufen

Die Zeit für ein etc-update ist gekommen, wenn ein emerge irgendeines Programms mit folgenden Zeilen endet:

* IMPORTANT: 3 config files in /etc need updating.
* Type emerge --help config to learn how to update config files.

Als erstes startet man etc-update:

etc-update

Die Ausgabe kann wie folgt aussehen:

Scanning Configuration files:::
Automerging trivial changes in: dolilo.example
The following is the list files need updating, each configuration file
is followed by a list of posible replacement files.
1) /etc/udev/rules.d/50-udev.rules
/etc/udev/rules.d/._cfg0000_50-udev.rules
2) /etc/fstab
/etc/._cfg0000_fstab
Please select a file to edit by entering the corresponding number.
          (don't use -3 or -5 if you're unsure what do to)
          (-1 to exit)(-3 to auto merge all remaining files)
                      (-5 to auto-merge AND not use 'mv -i'):

[Bearbeiten] Zu aktualisierende Dateien anzeigen lassen

Der häufigste Fehler ist es -3 oder -5 einzugeben, obwohl extra gewarnt wird dies nicht zu machen, falls man nicht weiß, was man tut. Man sollte so selten wie möglich -3 oder -5 ausführen. Der einfachste Weg ist ohne jegliche Eingabe einfach [Enter] zu drücken. Umgehend werden einem die Unterschiede der ersten upzudatenden Datei angezeigt. Will man zunächst die Unterschiede zwischen anderen Konfigurationsdateien ansehen, dann gibt man die entsprechende Zahl gefolgt von [Enter] ein. In unserem Beispiel also 2 gefolgt von [Enter].

Mit der Taste q kommt man zum nächsten Auswahlmenü

1) Replace original with update
2) Delete update, keeping original as is
3) Interactivily merge original with update
4) Show differences again
Please select from the menu above (-1 to ignore this update)

[Bearbeiten] Vier Regeln bei der Frage, Update oder nicht

bezogen auf das Auswahlmenu:

1. Falls man sich nicht sicher ist, -1 und [Enter] drücken und mit dem nächsten weiter machen.

2. Falls das Update deine Änderungen an der Konfigurationsdatei nicht überschreiben und das ganze danach nicht wie bei der Installation aussehen darf, dann wähle die 2). Häufig ist das zum Beispiel bei folgenden Dateien der Fall:

/etc/fstab
/etc/group
/etc/ppp/pppoe.conf

Die Liste kann beliebig erweitert werden, je nachdem wie viele Dateien du selber editiert hast. Bei diesen sollte man generell vorsichtig sein. Denn wer hat schon Lust danach die Änderungen wieder rückgängig zu machen. Wenn man sich hier aber nicht sicher ist, gilt 1.

3. Bei vielen Dateien (z.b. /etc/udev/50-udev.rules) wo man sich wirklich sicher ist kann man 1) nehmen, anonsten gilt 1.

4. Interactively merge original with update ist die leistungsfähigste Funktion von etc-update. Hierbei werden die geänderten Zeilen(blöcke) beider Versionen nebeneinander dargestellt, der Benutzer kann dann jeweils die rechte (neue) oder linke (alte) Version mit r bzw l auswählen, mit el bzw er wird die gewählte Version vor der Übernahme im Editor geöffnet. Mit eb werden beide Versionen im Editor geöffnet, der alte Zeilenblock steht oben, der neue unten. Anschießend kann man die Änderungen übernehmen, sich die Unterschiede zwischen der bearbeiteten Version und der Originalversion anzeigen lassen, den ganzen Vorgang wiederholen, die bearbeitete Version im Editor weiter bearbeiten oder zum vorherigen Menü zurückkehren.


Show differences zeigt einem nochmal die Unterschiede an.

[Bearbeiten] Wie ist mit Konfigurationsdateien zu verfahren, die man nach der 1. Regel behandelt hat?

Dazu mehr unter Wie aktualisiere ich Konfigurationsdateien ohne etc-update

[Bearbeiten] Bei Behandlung nach Regel 2 und 3

Die Zahl 1 oder 2 eingeben je nachdem wie man sich entschieden hat, bestätigen und dann mit y + [Enter] ein Überschreiben der Datei oder ein Entfernen des Updates zu erlauben. Dann ist man schon bei der nächsten Konfigurationsdatei, deren Unterschiede man präsentiert bekommt. Vergesst die Regeln nicht ;)

[Bearbeiten] Abschluss von etc-update

Mitunter kann der Prozess langwierig sein, wenn sich etc-update mit "Exiting: Nothing left to do; exiting. :)" verabschiedet bleiben nur noch die Files übrig die man übersprungen hat.

[Bearbeiten] Wie aktualisiere ich Konfigurationsdateien ohne etc-update

[Bearbeiten] dispatch-conf

Hierbei wird von jeder Datei eine Sicherung angelegt und vor dem Überschreiben nachgefragt.


[Bearbeiten] Unterschiede ohne grafisches System anzeigen

Falls man kein Fenstersystem installiert hat, kann man sich auch komfortabel die Unterschiede zwischen 2 Dateien mit dem Konsolentool diff anzeigen lassen:

 diff -y --suppress-common-lines DATEI_1 DATEI_2

Hierbei wird DATEI_1 auf der linken Seite und DATEI_2 auf der rechten Seite dargestellt. Ergänzend lässt sich noch hinzufügen den diff Befehl mit less zu erweitern:

 diff -y --suppress-common-lines DATEI_1 DATEI_2 | less

[Bearbeiten] Eine Liste mit den Updates erstellen

Man ruft etc-update auf (oder auch noch einmal für die die Regel 1 befolgt haben) doch nun lenken wir die Ausgabe um:

etc-update > ~/etc.txt

Nicht vergessen nach dem Aufruf des Befehls (am besten einige Zeit warten bis die HDD nicht mehr rasselt) -1 und Enter drücken. Da man mit "> ~/etc.txt" die Ausgabe umlenkt sieht man auch nicht ob das Programm auf eine Eingabe wartet.

Besser geht es auch mit:

etc-update |tee ~/etc.txt

Das lenkt die Ausgabe in die gewünschte Datei, das Programm bleibt jedoch weiterhin sicht- und bedienbar. (tee = T-Stück, nicht das Getränk)

Nun wurde eine Liste erstellt, die man jederzeit abrufen kann:

cat ~/etc.txt

[Bearbeiten] Einzelne Konfigurationsdateien aktualisieren

Dazu öffnet man dann mit nano die Originaldatei, z.B. /etc/fstab (bezogen auf mein Beispiel siehe weiter oben)

nano -w /etc/fstab

Nun nutzt man die Funktion [STRG-R] (Datei öffnen) und gibt /etc/._cfg0000_fstab ein und bestätigt mit [Enter]. Nun kann man nach Lust und Laune die Datei an die eigenen Bedürfnisse anpassen und abspeichern.

rm /etc/._cfg0000_fstab sollte man nicht vergessen

[Bearbeiten] Grafische Editoren benutzen

Benutzt man eine grafische Oberfläche, kann man sich die Arbeit vereinfachen indem man Werkzeuge wie kompare, kdiff3 oder gtkdiff benutzt.

[Bearbeiten] KDE (kompare, kdiff3)

emerge kompare
emerge kdiff3

Bearbeiten von /etc/etc-update.conf: Die Zeile

pager="less"

durch

#pager="less"
pager=""

ersetzen.

Um kompare zum Vergleich zweier Konfigurationsdateien zu verwenden, ändert man diff_command wie folgt ab (vorher den Pfad von kompare ermitteln):

diff_command="/usr/kde/3.4/bin/kompare %file1 %file2"

kdiff3 bietet sich zum Zusammenführen von Konfigurationsdateien an. Hiefrür wird merge_command wie folgt geändert:

merge_command="/usr/bin/kdiff3 %orig %new -o %merged"


[Bearbeiten] gnome (gtkdiff)

emerge gtkdiff

Bearbeiten von /etc/etc-update.conf: Die Zeile

pager="less"

durch

#pager="less"
pager=""

ersetzen.

gtkdiff als diff_command:

diff_command="gtkdiff -g 1600x1000 %file1 %file2"

gtkdiff als merge_command:

merge_command="gtkdiff -g 1600x1000 -o %merged %orig %new" 

Siehe Gentoo Forums :: Graphical etc-update

[Bearbeiten] Abschließende Worte

Das Aktualisieren der Konfigurationsdateien ist an und für sich gar nicht mühselig, wenn man es jedesmal macht sobald man dazu aufgefordert wird. Macht man dies nicht, können sich mitunter nach einem Vierteljahr über 100 Updates angesammelt haben. Wenn was nicht funktionert, findet man bei einer kleinen Zahl aktualisierter Dateien eher den Fehler, als wenn viele Dateien verändert wurden.

--Misterjack 02:53, 20. Nov 2004 (GMT) --pi 10:33, 6. Nov 2005 (GMT)

'Persönliche Werkzeuge
Andere Sprachen