Im Normalfall liegen die Debianpakete entweder bereits fertig konfiguriert oder mit einer vorbereiteten Konfiguration auf dem Spiegelserver. Dafür zeichnet der Paketmaintainer verantwortlich. Mit verschiedenen Werkzeugen zeigen Sie diese Konfiguration an oder justieren das Paket neu.
Die bestehende Konfiguration eines Paketes zeigen Sie mit Hilfe des
Kommandos debconf-show
Paketname an. debconf-show
ist Bestandteil
des Pakets debconf [Debian-Paket-debconf] und somit ein essentieller
Teil ihrer Installation. Für das Paket tzdata [Debian-Paket-tzdata]
sieht das Ergebnis wie folgt aus, sofern Sie auf ihrem System als
Zeitzone „Europa/Berlin“ eingestellt haben:
Ausgabe der Konfiguration eines Pakets — hier tzdata.
# debconf-show tzdata tzdata/Zones/Pacific: tzdata/Zones/Arctic: tzdata/Zones/Africa: tzdata/Zones/Asia: tzdata/Zones/US: * tzdata/Zones/Etc: UTC tzdata/Zones/Australia: * tzdata/Zones/Europe: Berlin * tzdata/Areas: Europe tzdata/Zones/Antarctica: tzdata/Zones/SystemV: tzdata/Zones/Atlantic: tzdata/Zones/Indian: tzdata/Zones/America: #
In obiger Ausgabe erscheint vor jeder Zeile ein *
für die Frage zur
Konfiguration, die Ihnen als Benutzer bereits bei der Einrichtung des
Pakets gestellt wurde. Das kommt beispielsweise dann vor, wenn Sie
Debian auf ihrem System installieren — das Paket tzdata ist ein
grundlegender Bestandteil des Installationsprozesses. Es legt die
verwendete Zeitzone ihres Systems fest (tzdata kürzt time zone data
ab).
Die Konfiguration für alle Pakete ist in der Debconf-Datenbank
gespeichert. Um diese Konfiguration auszulesen, bedienen Sie sich des
Kommandos debconf-get-selections
aus dem Paket debconf-utils
[Debian-Paket-debconf-utils]. Dieses Paket gehört nicht zur
Basisinstallation und ist daher ggf. noch von Ihnen nachzuinstallieren.
Die Ausgabe des Programms erfolgt zeilenweise auf dem
Standardausgabekanal (stdout
). Sie erhalten zunächst eine
Kommentarzeile, die jeweils mit einem #
eingeleitet wird. Darauf folgt
die Konfigurationsvariable und der Wert, der für die entsprechende
Variable derzeit hinterlegt ist. Da die Debconf-Datenbank eine hohe
Anzahl Variablen speichert, macht Ihnen ein Pager wie less
die
seitenweise Betrachtung leichter (siehe nachfolgendes Beispiel).
Gespeicherte Konfiguration in der Debconf-Datenbank.
# debconf-get-selections | less # Standardwortliste des Systems: # Choices: american (American English), deutsch (New German), Manuelle Einrichtu ng von symbolischen Verweisen dictionaries-common dictionaries-common/default-wordlist select deutsch (New German) # Jetzt die Umstellung auf GRUB 2 abschließen? grub-pc grub-pc/mixed_legacy_and_grub2 boolean true ... #
Das Installationsprogramm von Debian verfügt ebenfalls über eine solche
Liste. Diese lesen Sie über den Schalter --installer
aus. Der
Hintergrund dazu ist, dass die Informationen, die während der
Installation des Systems gesetzt werden, in einer getrennten Datenbank
unter /var/log/installer/cdebconf
abgelegt sind.
Auslesen der Konfiguration für den Installer (Ausschnitt).
# debconf-get-selections --installer ... # Typ des drahtlosen Netzwerks (WLAN): # Choices: Infrastruktur-Netzwerk (Managed), Ad-hoc-Netzwerk (Peer-to-Peer) netcfg netcfg/wireless_adhoc_managed select Infrastructure (Managed) network # Änderungen auf die Platte schreiben und verschlüsselte Datenträger konfigurieren? partman-crypto partman-crypto/confirm boolean false ... #
Das Gegenstück zu debconf-get-selections
ist debconf-set-selections
(Paket debconf [Debian-Paket-debconf]). Dieses Werkzeug kann die
Ausgabe von debconf-get-selections
direkt verarbeiten und dient Ihnen
bspw. zum Einspielen einer vorab gesicherten Paketkonfiguration auf dem
gleichen oder einem anderen System. Ausführlicher besprechen wir diesen
speziellen Anwendungsfall im Praxisteil unter „Paketkonfiguration
sichern“ in Kapitel 34, Paketkonfiguration sichern.
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:
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 ...
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 #
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:
postinst
bereit, wird
dieses abgearbeitet.
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 Abschnitt 8.40.4, „Konfiguration mit dpkg-reconfigure
erneut durchführen“
ein.
Für diesen Schritt hilft Ihnen das Werkzeug dpkg-reconfigure
aus dem
Paket debconf [Debian-Paket-debconf] weiter. Es greift dazu auf
debconf
zurück, welches wiederum eine Datenbank mit den
Konfigurationseinträgen ihrer Pakete unter /var/cache/debconf
benutzt.
dpkg-reconfigure
kennt diese Optionen zum Aufruf:
-f
(Langform --frontend
)
dpkg-reconfigure
die nicht-interaktive
Schnittstelle auf der Basis von Dialog/Ncurses. Zur weiteren Auswahl
stehen Readline (interaktiv), via Gnome oder KDE, mit Hilfe eines
Texteditors oder die Eingabezeile (nicht interaktiv) zur Auswahl. In
Abbildung 8.29, „Konfiguration des Pakets debconf“ sehen Sie den Einstellungsdialog für das Paket
debconf, welchen Sie mittels dpkg-reconfigure debconf
erreichen.
--default-priority
--force
--no-reload
-p
(Langform --priority
)
-u
(Langform --unseen-only
)
Mit dem Aufruf dpkg-reconfigure
Paketname konfigurieren Sie ein
bereits installiertes Paket erneut. Wir zeigen Ihnen das anhand des
Pakets tzdata [Debian-Paket-tzdata], welches die Einstellungen für
die Zeitzone steuert. Nach dem Aufruf zwei Dialogfenster — der
Kontinent und die Stadt oder Region, die zu ihrer Zeitzone passt (siehe
Abbildung 8.30, „Konfiguration des Pakets tzdata und regionale Auswahl“). Danach gibt ihnen dpkg-reconfigure
die aktuelle
Zeitzone und die Uhrzeit aus — jeweils in lokaler Zeit (hier
Mitteleuropäische Sommerzeit, kurz CEST) und in Universalzeit (Universal
Time, kurz UTC).
Einstellung der Zeitzone.
# dpkg-reconfigure tzdata Current default time zone: 'Europe/Berlin' Local time is now: Sat Aug 6 00:46:08 CEST 2016. Universal Time is now: Fri Aug 5 22:46:08 UTC 2016. #