DEBCONF(7) | Miscellaneous Information Manual | DEBCONF(7) |
NAME¶
debconf - Debian-Paket-Konfigurationssystem
BESCHREIBUNG¶
Debconf ist ein Konfigurationssystem für Debian-Pakete. Es gibt auch einenselten verwandten Befehl namens debconf, der in debconf(1) dokumentiert ist.
Debconf stellt eine konsistente Schnittstelle zur Paketkonfiguration bereitund erlaubt es Ihnen, aus mehreren Benutzerschnittstellen auszuwählen. Esunterstützt die Vorkonfiguration von Paketen vor der Installation, womit beigroßen Installationen und Upgrades alle notwendigen Informationen am Anfangabgefragt werden können und Sie dann während der Installation selbst sichanderen Dingen widmen können. Falls Sie in Eile sind, können Sie damitwährend der Paketinstallation weniger wichtige Fragen und Informationenüberspringen (und diese dann später nochmal angehen).
Pakete vorkonfigurieren¶
Debconf kann sogar Pakete konfigurieren, bevor Sie auf Ihrem Systeminstalliert sind. Dies ist nützlich, weil damit alle Fragen, die die Paketestellen werden, am Anfang der Installation gestellt werden können, so dassder Rest der Installation ablaufen kann, während Sie eine Tasse Kaffeeholen.
Falls Sie Apt (Version 0.6 oder neuer) verwenden und apt-utils istinstalliert, wird jedes von Apt installierte Paket automatischvorkonfiguriert. Dies wird über /etc/apt/apt.conf.d/70debconf gesteuert.
Manchmal möchten Sie vielleicht ein Paket von Hand vorkonfigurieren, wennSie es nicht mit APT installieren. Sie können dpkg-preconfigure (8)benutzen, um das zu machen, übergeben Sie einfach die Dateinamen der Pakete, die Sie vorkonfigurieren wollen. Damit dies funktioniert, muss das Paket apt-utils installiert sein.
Pakete erneut konfigurieren¶
Angenommen Sie haben ein Paket installiert und Debconfs Fragen beantwortet,aber nun, da Sie es eine Weile benutzt haben, erkennen Sie, dass Siezurückgehen und einige Ihrer Antworten ändern wollen. Früher mussten Sie dasPaket erneut installieren, wenn Sie in diese Situation gerieten. Wenn Sieaber das Paket erneut installieren, scheint Debconf sich zu erinnern, dassSie die Fragen beantwortet haben, und stellt sie nicht erneut (Dies ist eineFunktionalität).
Glücklicherweise macht es Debconf einfach, jedes Paket, das
es benutzt,erneut zu konfigurieren. Angenommen, Sie wollen Debconf selbst
erneutkonfigurieren. Führen Sie als root einfach das Folgende aus:
dpkg-reconfigure debconf
Dies stellt alle Fragen, die Sie sahen, als Debconf das erste Malinstalliert wurde. Es mag Ihnen auch andere Fragen stellen, weil es selbstFragen mit niedriger Priorität stellt, die übersprungen wurden, als dasPaket installiert wurde. Sie können diesen Befehl auch mit jedem anderenPaket verwenden, das Debconf benutzt.
Benutzerschnittstellen (Frontends)¶
Eines von Debconfs einzigartigen Funktionalitäten ist, dass die Ihnenpräsentierte Schnittstelle nur eine von vielen ist, die nach Beliebenausgetauscht werden kann. Es gibt viele Debconf-Benutzerschnittstellen:
- dialog
- Die vorgegeben Benutzerschnittstelle, diese benutzt die Programmewhiptail(1) oder dialog(1), um die Fragen an Sie anzuzeigen. Sie arbeitet im Textmodus.
- readline
Diese Benutzerschnittstelle hat einige Sondertasten. Bild-nach-oben (oderCtrl-u) geht zur vorigen Frage zurück (falls dies von demDebconf-benutzenden Paket unterstützt) und Bild-nach-unten (oder Ctrl-v)springt weiter zur nächsten Frage.
Dies ist die beste Benutzerschnittstelle für Administrationsarbeit aus derFerne über eine langsame Verbindung oder für alle, die mit Unix vertrautsind.
- noninteractive
- Dies ist die Anti-Benutzerschnittstelle. Sie tritt nie mit Ihnen in Kontakt,und lässt für alle Fragen die vorgegebenen Antworten benutzen. Sie magFehlermeldungen an root mailen, aber das war es; ansonsten ist sie komplettstill und unaufdringlich, eine perfekte Schnittstelle für automatischeInstallationen. Falls Sie diese Benutzerschnittstelle benutzen undnicht-vorgegebene Antworten auf Fragen benötigen, müssen Sie dieDebconf-Datenbank mit Voreinstellungen versehen; für weitere Details sieheunten den Abschnitt »Unbeaufsichtigte Paket-Installation«.
- gnome
- Dies ist eine modern X-GUI, die die GTK und GNOME-Bibliothekenbenutzt. Natürlich benötigtes es zum Funktionieren ein gültiges DISPLAY;Debconf greift auf andere Benutzerschnittstellen zurück, falls sie nichtfunktionieren kann. Beachten Sie, dass diese Benutzerschnittstelle dieInstallation des Pakets libgtk3-perl erfordert.
- kde
- Diese Benutzerschnittstelle stellt eine moderne X-Benutzerschnittstelle aufder KDE-Plattform bereit. Sie benötigen natürlich ein DISPLAY, um dieseOberfläche zu benutzen und müssen das Hilfspaket debconf-kde-helperinstallieren. Die Schnittstelle fällt auf Dialog zurück, falls einige derVoraussetzungen nicht zutreffen.
- editor
- Dies ist für diese Fanatiker, die alles mit einem Texteditor erledigenmüssen. Es ruft Ihren Editor mit einer Datei auf, die ein wenig wie einetypische Unix-Konfigurationsdatei aussieht, und Sie editieren die Datei, ummit Debconf zu kommunizieren. Der Autor von Debconf zieht es vor, nicht dieUmstände zu kommentieren, die dazu geführt haben, dass dieseBenutzerschnittstelle geschrieben wurde.
- web
Behalten Sie im Kopf, dass diese Benutzerschnittstelle nicht sehr sicherist. Jeder, der auf den zu konfigurierenden Rechner Zugriff hat, kannderzeit auf den den Web-Server zugreifen und Dinge konfigurieren, währenddiese Schnittstelle läuft. Also ist dies mehr eine Konzeptstudie als allesandere.
Sie können die standardmäßige
Benutzerschnittstelle, die Debconf benutzt,ändern, indem Sie Debconf
erneut konfigurieren. Falls Sie andererseitsdie Benutzerschnittstelle nur
für kurze Zeit ändern wollen, könnenSie die
Umgebungsvariable DEBIAN_FRONTEND auf den Namen der zu
benutzendenBenutzerschnittstelle setzen. Zum Beispiel:
DEBIAN_FRONTEND=readline apt-get install slrn
Die Befehle dpkg-reconfigure(8) und dpkg-preconfigure(8) lassen sich auch --frontend übergeben, gefolgt von der Benutzerschnittstelle, die Sie benutzen sollen.
Beachten Sie, dass nicht alle Benutzerschnittstellen unter allen Umständenfunktionieren. Falls eine Benutzerschnittstelle aus irgendwelchen Gründenscheitert, gibt Debconf eine Meldung aus, warum, und greift auf dieähnlichste Benutzerschnittstelle zurück.
Prioritäten¶
Ein weitere nette Funktionalität von Debconf ist, dass die Fragen, die esIhnen stellt, priorisiert sind. Falls Sie nicht mit jeder kleinen Sachebelästigt werden wollen, können Sie Debconf so einstellen, dass es Ihnen nurdie wichtigsten Fragen stellt. Falls Sie auf der anderen Seite einKontroll-Freak sind, können Sie es Ihnen alle Fragen zeigen lassen. JedeFrage hat eine Priorität. In nach Wichtigkeit aufsteigender Folge:
- niedrig (low)
- Sehr triviale Fragen, die Voreinstellungen haben, die in den allermeistenFällen funktionieren.
- medium
- Normale Fragen, die vernünftige Voreinstellungen haben.
- hoch (high)
- Fragen, die keine vernünftige Voreinstellung haben.
- kritisch (critical)
- Fragen, die Sie wirklich, wirklich sehen müssen (ansonsten ...).
Nur Fragen mit einer Priorität gleich oder größer der Priorität, die Siewählen, werden Ihnen gezeigt. Sie können den Prioritätswert setzen, indemSie Debconf erneut konfigurieren, oder temporär, indem Sie --priority gefolgt von dem Wert an die Befehle dpkg-reconfigure(8) und dpkg-preconfigure(8) übergeben oder durch Setzen der Umgebungsvariablen DEBIAN_PRIORITY.
Datenbanken-Backend¶
Debconf benutzt ein ziemlich flexibles und potenziell kompliziertesDatenbanken-Backend, um solche Daten wie die Antworten auf Fragen zuspeichern. Die Datei /etc/debconf.conf wird benutzt, um diese Datenbank zu konfigurieren. Falls Sie etwas Kompliziertes aufsetzen müssen, etwa Debconf eine entfernte Datenbank für Voreinstellungen mit lokalen Aufhebungen lesen zu lassen, schauen Sie sich die Handbuchseite debconf.conf(5) für alle Details an. Generell befindet sich das Datenbanken-Backend unter /var/cache/debconf/.
Unbeaufsichtigte Paket-Installation¶
Falls Sie viele Maschinen verwalten müssen, finden Sie sich manchmal in derSituation, eine unbeaufsichtigte Installation oder Aktualisierung vonPaketen auf vielen Systemen vornehmen zu müssen, bei der die vorgegebenenAntworten auf manche Konfigurationsfragen nicht akzeptabel sind. Es gibtviele Wege, dies zu erreichen; alle schließen ein, eine Datenbankaufzusetzen und sie Debconf benutzen lassen, um die Antworten zu bekommen,die Sie wollen.
Sie sollten vor diesem Abschnitt wirklich debconf.conf(5) lesen, weil Sie verstehen müssen, wie Debconfs Datenbanken funktionieren.
Der einfachste Weg, um die Datenbank aufzusetzen, ist es, die Pakete aufeiner Maschine zu installieren und ihre Fragen wie üblich zubeantworten. Oder Sie könnten einfach dpkg-preconfigure(8) benutzen, um eine Reihe von Paketen zu konfigurieren, ohne sie tatsächlich zu installieren. Oder Sie mögen sich sogar dazu entscheiden, eine Klartext-Debconf-Datenbank von Hand zu schreiben, oder soetwas.
Sobald Sie die Datenbank haben, müssen Sie herausfinden, wie Sie die Systemein der Ferne dazu bekommen, sie zu benutzen. Dies hängt selbstverständlichvon der Konfiguration dieser Systeme ab und davon, für die Benutzung welcherDatenbanken-Typen sie aufgesetzt sind.
Falls Sie die LDAP-Debconf-Datenbank benutzen, kann ein gesamtes Netzwerkvon Debian-Maschinen einige oder alle Fragen zur Paket-Installationautomatisch von einem einzelnen LDAP-Server beantwortet bekommen.
Aber vielleicht benutzen Sie etwas, das ein wenig leichter aufzusetzen ist,wie, sagen wir, die standardmäßige Debconf-Datenbanken-Konfiguration oderSie wollen einfach nicht, dass Ihre System in der Ferne LDAP die ganze Zeitbenutzen. In diesem Falle ist der beste Ansatz, die Systeme in der Fernetemporär so zu konfigurieren, dass sie Ihre Datenbank unter ihre eigenenexistierenden Datenbanken stapeln, so dass sie vorgegebene Werte aus ihrherausziehen können. Debconf bietet zwei Umgebungvariablen,DEBCONF_DB_FALLBACK und DEBCONF_DB_OVERRIDE, um es einfach zu machen, diesim Vorbeigehen zu tun. Hier ist eine Beispielanwendung:
cat /var/cache/debconf/config.dat | \
ssh root@target "DEBIAN_FRONTEND=noninteractive \
DEBCONF_DB_FALLBACK=Pipe apt-get upgrade"
Dies lässt das Debconf auf dem Rechner in der Ferne die Daten, die über dieSSH-Verbindung transferiert werden, einlesen und als eine Debconf-Datenbankim Klartextformat interpretieren. Dann benutzt es diese Datenbank alsRückgriffsdatenbank -- eine nur-lesende Datenbank, die nach Antworten zuFragen abgefragt wird, falls die Haupt-Debconf-Datenbank des Systems keineAntworten bietet.
Noch ein Weg, die Umgebungsvariable DEBCONF_DB_FALLBACK zu benutzen:
ssh -R 389:ldap:389 root@target \
"DEBCONF_DB_FALLBACK='LDAP{host:localhost}' apt-get upgrade"
Hier wird SSH benutzt, um eine getunnelte LDAP-Verbindung aufzusetzen undDebconf auszuführen. Debconf soll den LDAP-Server als Rückgriffs-Datenbankbenutzen. Beachten Sie die Benutzung von »{host:localhost}«, um zukonfigurieren, wie Debconf auf die LDAP-Datenbank zugreift, indem das Feld»host« mit dem Wert »localhost« geliefert wird.
Noch eine Methode:
scp config.dat root@target:
ssh root@target "DEBCONF_DB_FALLBACK='File{/root/config.dat}' apt-get
upgrade
Hier kopieren Sie die Datenbank mit scp hinüber, und dann öffnen Sie SSH undlassen Debconf die hinüber-kopierte Datei benutzen. Dies illustriert einenAbkürzung, die Sie bei den Parametern für DEBCONF_DB_FALLBACK benutzenkönnen -- falls der Feldname ausgelassen wird, wird »filename« angenommen.
Es gibt nur ein Problem mit diesen Anwendungen des ParametersDEBCONF_DB_FALLBACK: Während die Rückgriffsdatenbank Antworten auf Fragenliefern kann, die die anderen Datenbanken noch nicht gesehen haben, wird sienur als Rückgriff abgefragt; nach den anderen Datenbanken. Falls Siestattdessen auf dem entfernten Rechner einen bestehenden Wert temporär außerKraft setzen müssen, sollten Sie stattdessen die VariableDEBCONF_DB_OVERRIDE benutzen. Wie DEBCONF_DB_FALLBACK setzt sie einetemporäre Datenbank auf, aber diese Datenbank wird vor allen anderenbefragt, und kann benutzt werden, um bestehende Werte außer Kraft zu setzen.
Entwickeln für Debconf¶
Paket-Entwickler und andere, die Pakete entwickeln wollen, die Debconfbenutzen, sollten debconf-devel(7) lesen.
Kurz gesagt kommuniziert Debconf mit Maintainer-Skripten oder anderenProgrammen über die Standardein- und -ausgabe, unter Benutzung einereinfachen Befehlssprache ähnlich denen, wie sie von gängigenInternet-Protokollen wie SMTP benutzt werden. Programme benutzen diesesProtokoll, um Debconf zu bitten, Fragen an den Benutzer zu stellen und dieAntworten des Benutzers einzuholen. Die Fragen selbst sind in einer eigenenDatei, »Vorlagendatei« genannt, definiert, die ein Format ähnlich einerDebian-Control-Datei hat.
Debian-Pakete, die Debconf benutzen, liefern typischerweise eineVorlagendatei »templates« und ein Skript »config« (welches ausgeführt wird,um das Paket vorzukonfigurieren) in dem Abschnitt für die Kontroll-Metadatendes Pakets aus.
UMGEBUNG¶
- DEBIAN_FRONTEND
- Wird benutzt, um temporär die Benutzerschnittstelle zu ändern, die Debconfbenutzt. Siehe oben.
- DEBCONF_PRIORITY
- Wird benutzt, um temporär die Schwell-Priorität der von Debconf angezeigtenFragen zu ändern. Siehe oben.
- DEBCONF_DEBUG
- DEBCONF_NOWARNINGS
- Setzen Sie dies auf »yes«, um einige Warnungen zu deaktivieren, die Debconfanzeigen könnte. Unterdrückt keine fatalen Fehler.
- DEBCONF_TERSE
- Setzen Sie dies auf »yes«, um den knappen Modus zu aktivieren, in demDebconfs Benutzerschnittstellen den Wortreichtum so weit wie möglicheinschränken.
- DEBCONF_DB_FALLBACK
- Stapel eine Datenbank nach den normalerweise benutzten Datenbanken, so dasssie als ein Rückgriff benutzt wird, um Konfigurationsinformationen zubeziehen. Siehe oben »Unbeaufsichtigte Paket-Installation«. Falls der Wertder Variablen ein Name einer existierenden Datenbank in debconf.conf istwird diese Datenbank benutzt. Ansonsten kann die Umgebungsvariable benutztwerden, um eine Datenbank im Vorbeigehen (»on the fly«) zu konfigurieren,indem der Typ der Datenbank genannt und optional Feld:Wert-Einstellungen ingeschwungenen Klammern nach dem Typ übergeben werden. Leerzeichen werdenbenutzt, um Felder zu trennen, also können Sie keinen Feldwert angeben, derLeerrzeichen enthält.
Dieses benutzt also die Datenbank fallbackdb in debconf.conf:
DEBCONF_DB_FALLBACK=fallbackdb
Während dies eine neue Datenbank vom Typ
»File« aufsetzt und ihr den zubenutzenden Dateinamen und die
Anweisung, das Erstellen vonSicherheitskopien zu deaktivieren,
übergibt:
DEBCONF_DB_FALLBACK=File{Filename:/root/config.dat Backup:no}
Und als Kurzform setzt dies eine Datenbank vom Typ
»File« mit einemDateinamen auf:
DEBCONF_DB_FALLBACK=File{/root/config.dat}
Beachten Sie, dass eine Rückgriffsdatenbank, falls sie im Vorbeigehenaufgesetzt wird, standardmäßig nur-lesend ist.
- DEBCONF_DB_OVERRIDE
- Stapelt eine Datenbank vor die normalerweise benutzten Datenbanken, so dasssie Werte aus ihnen überstimmen kann. Der Wert dieser Variablen funktioniertauf dieselbe Weise wie der Wert von DEBCONF_DB_FALLBACK.
- DEBCONF_DB_REPLACE
- Benutze eine gegebene Datenbank anstelle der normalerweise benutztenDatenbanken. Dies kann nützlich sein, um mit einer separaten Datenbank zutesten, ohne dafür eine eigene debconf.conf zu erstellen, oder um dasSperren der normalen Datenbanken zu vermeiden.
- DEBCONF_SYSTEMRC
- Falls diese Umgebungsvariable gesetzt ist, ignoriert Debconf die Datei~/.debconfrc des Benutzer, und benutzt stattdessen die systemweitedebconf.conf. Falls diese auf den Namen einer regulären Datei gesetzt ist,zieht Debconf diese Datei der systemweiten Konfigurationsdatei vor.
- DEBCONF_FORCE_DIALOG
- Falls diese Umgebungsvariable gesetzt ist, bevorzugt Debconf dialog gegenüber whiptail für die Benutzerschnittstelle Dialog.
- DEBCONF_FORCE_XDIALOG
- Falls diese Umgebungsvariable gesetzt ist, bevorzugt Debconf Xdialog vor whiptail für die Benutzerschnittstelle Dialog.
- DEBCONF_NONINTERACTIVE_SEEN
- Setzen Sie diese auf »true«, damit die Markierung gesehen (»seen«) fürFragen, die in der nicht-interaktiven (»noninteractive«) Schnittstellegestellt werden, gesetzt wird.
FEHLER¶
möglicherweise einige, es gibt hier eine Menge an Kode.
Falls Sie einen Fehlerbericht einreichen (auf Englisch!), stellen Siesicher, dass Sie die folgenden Informationen einbeziehen:
- *
- Die Debconf-Benutzerschnittstelle, die Sie benutzten, als der Fehlerauftrat.
- *
- Was Sie taten, um das Problem auszulösen.
- *
- Den vollständigen Text jeder Fehlermeldung. Falls Sie den Fehlerreproduzieren können, tun Sie dies mit auf gesetztem und exportiertemDEBCONF_DEBUG='.*'.Dies beschleunigt die Fehlersuche sehr.
ÜBERSETZUNG¶
Die deutsche Übersetzung wurde 2008 von Florian Rehnisch<eixman@gmx.de> und 2008-2009, 2012 von Helge Kreutzmann <debian@helgefjell.de>angefertigt. Diese Übersetzung ist Freie Dokumentation; lesen Sie dieGNU General Public License Version 2 oder neuer für die Kopierbedingungen.Es gibt KEINE HAFTUNG.
SIEHE AUCH¶
debconf.conf(5), debconf-devel(7), dpkg-preconfigure(8), dpkg-reconfigure(8), debconf(1),
AUTOR¶
Joey Hess <joeyh@debian.org>