// Datei: ./werkzeuge/paketoperationen/pakete-konfigurieren/bestehende-konfiguration-anwenden.adoc

// Baustelle: Rohtext

==== Bestehende Konfiguration anwenden ====

// Stichworte für den Index
(((Paket, die bestehende Konfiguration verwenden)))
Die Basiseinstellungen eines Pakets funktionieren im Allgemeinen recht
gut, haben aber nicht immer einen Bezug zu ihrem konkreten Einsatzfall.
Dieser lässt sich selten vollständig vorhersehen. Daher folgt im Rahmen
der Paketinstallation zunächst ein individuelles Feintuning seitens des
Administrators. Das betrifft die Voreinstellungen für alle Benutzer. Als
Benutzer selbst nehmen Sie individuelle, lokale Korrekturen vor.

Das Anwenden der vorbereiteten Konfiguration umfasst mehrere Schritte --
bspw. das Festlegen von Zugangsdaten (administratives Passwort von
MySQL) oder das Starten von benötigten Diensten, bspw. Exim als Mail
Transfer Agent (MTA). Stellt `dpkg` dabei fest, dass zwischen der
mitgelieferten Konfiguration des neuen Pakets und der bereits
bestehenden Konfiguration Unterschiede vorliegen, werden Sie durch das
Programm gefragt, welche der beiden Einstellungen zukünftig genutzt
werden soll. Das ist sinnvoll und berücksichtigt insbesondere den Fall,
dass das Paket bereits bisher auf ihrem System installiert war und von
Ihnen händisch auf ihre individuellen Gegebenheiten angepasst wurde. Als
Möglichkeiten werden Ihnen hier angeboten:

* die mitgelieferte Konfiguration des neuen Pakets zu benutzen
* die bestehende Konfiguration des installierten Pakets beibehalten
* sich die Unterschiede zwischen beiden anzeigen zu lassen und
* eine Shell zur individuellen Problembehebung zu öffnen.

Bei letzterem bietet sich Ihnen damit die Möglichkeit, bspw. eine
Sicherheitskopie der bestehenden Konfiguration anzulegen, bevor Sie
diese verändern. Sollte diese neue Konfiguration nicht ihren Erwartungen
oder Bedürfnissen entsprechen, können Sie somit jederzeit auf die
Sicherheitskopie zurückgreifen. Bei diesem Vorgehen haben Sie als
Administrator die Möglichkeit zu sehen, dass überhaupt Unterschiede
bestehen und welche Unterschiede das konkret sind. Sie können Ihre
derzeitige Konfiguration beibehalten sowie im Zweifelsfall die
Konfiguration auf neue (Standard)Werte zurückzusetzen.

In seltenen Fällen geht dieser Prozess schief, d.h. das Paket wurde zwar
entpackt, aber nicht konfiguriert. Hintergrund können nicht sauber
aufgelöste Paketabhängigkeiten sein, aber auch Fehler im Paket selbst.
Ist ein benötigtes Paket nicht konfiguriert und be- bzw. verhindert
damit die Installation und Einrichtung weiterer, davon abhängiger
Pakete, teilt Ihnen `dpkg` das wie folgt mit:

.Fehler in der Konfiguration am Beispiel des Pakets 'mysql-server'
----
...
mysql-server hängt ab von mysql-server-5.5; aber:
  Paket mysql-server-5.5 ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von mysql-server (--configure):
 Abhängigkeitsprobleme - verbleibt unkonfiguriert
...
Richte docbook-xml ein (4.5-5) ...
update-xmlcatalog: error: entity already registered
dpkg: Fehler beim Bearbeiten von docbook-xml (--configure):
Unterprozess post-installation script gab den Fehlerwert 1 zurück
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von scrollkeeper:
scrollkeeper hängt ab von docbook-xml (>= 4.2-11); aber:
Paket docbook-xml ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von scrollkeeper (--configure):
 Abhängigkeitsprobleme - lasse es unkonfiguriert
...
----

// Stichworte für den Index
(((Debianpaket, dpkg)))
(((dpkg, --audit)))
(((dpkg, -C)))
Hilfreich ist es in diesem Fall, dass Sie zunächst analysieren, welche
Pakete unvollständig installiert sind. Dabei hilft Ihnen der Aufruf
`dpkg -C`, wobei `dpkg` für letzteres auch die Langform `--audit` kennt.

.Auflistung der unvollständig installierten Pakete mittels `dpkg`
----
# dpkg --audit
Für die folgenden Pakete fehlt die MD5-Prüfsummen-Datei in der Datenbank,
sie müssen erneut installiert werden:
 slib                 Portable Scheme library
 vifm                 a ncurses based file manager with vi like keybindings
#
----

// Stichworte für den Index
(((Debianpaket, dpkg)))
(((dpkg, -a)))
(((dpkg, --configure)))
(((dpkg, --pending)))
(((Maintainer-Skripte, postinst)))
Als nächsten Schritt schieben Sie die Konfiguration des Pakets an. Für
ein einzelnes Paket gelingt Ihnen das mit dem Aufruf `dpkg --configure`
'Paketname' und für mehrere Pakete mit `dpkg -a` (Langform `--pending`).
Im letztgenannten Fall arbeitet `dpkg` die Liste der unkonfigurierten
Pakete nacheinander ab. Die konkrete Reihenfolge der Abarbeitung legt
`dpkg` eigenständig fest.

Die Konfiguration eines Pakets geschieht in den folgenden Schritten:

* Die Konfigurationsdateien (``Conffiles'') des Pakets werden entpackt.

* Die bereits bestehenden Konfigurationsdateien (``Conffiles'') für das
  Paket werden gespeichert. Falls dabei etwas schief geht, können diese
  wiederhergestellt werden.

* Stellt das Paket ein Maintainer-Skript namens `postinst` bereit, wird
  dieses abgearbeitet.

// Stichworte für den Index
(((Debianpaket, dpkg)))
(((dpkg-reconfigure)))
(((Paket, erneut konfigurieren)))
Möchten Sie zu einem späteren Zeitpunkt die Einstellungen zu dem nun
installierten und konfigurierten Paket erneut anpassen, benutzen Sie
stattdessen das Werkzeug `dpkg-reconfigure`. Damit durchlaufen Sie die
Prozedur erneut. Ausführlicher gehen wir dazu in <<dpkg-reconfigure>>
ein.

// Datei (Ende): ./werkzeuge/paketoperationen/pakete-konfigurieren/bestehende-konfiguration-anwenden.adoc
