[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

SOLVED (was: Preload von Debconf-Fragen zur Update-Erleichterung)



On Mon, 22 Jul 2002 08:05:30 +0200, Marc Haber
<mh+debian-user-german@zugschlus.de> wrote:
>Das ist leider nicht akzeptabel, da keines meiner Systeme einem
>anderen gleicht. Mir geht es darum, die Standardfragen von netbase,
>less etc. nicht zigmal beantworten zu müssen, _ohne_ die Fragen der
>"spezielleren" Packages zu verpassen.

Das Problem lässt sich durch folgenden Ansatz lösen:

Ein script "mergedebconf":
|#!/usr/bin/perl -w
|
|use strict;
|
|my %records;
|
|$/="";
|
|while( <> ) {
|        chomp;
|        if( my ($name)=/^Name: (\S+)/m ) {
|                $records{$name}=$_;
|        } else {
|                die "no Name clause in record\n";
|        }
|}
|
|foreach (sort keys %records) {
|        print "$records{$_}\n\n";
|}

Nach dem Update von debconf auf die aktuelle Version nehme man sich
eine Datei globals.dat, die die Debconf-Datenbank-Records mit dem
gewünschten Inhalt enthält. Hier ein Beispiel, das die deutsche
Tastatur einstellt:
|Name: console-data/keymap/policy
|Template: console-data/keymap/policy
|Value: Select keymap from arch list
|Owners: console-common, console-data
|Flags: seen
|
|Name: console-data/keymap/family
|Template: console-data/keymap/family
|Value: qwertz
|Owners: console-common, console-data
|Flags: seen
|Variables:
| choices = azerty, dvorak, fgGIod, qwerty, qwertz
|
|Name: console-data/keymap/qwertz/layout
|Template: console-data/keymap/template/layout
|Value: German
|Owners: console-data
|Flags: seen
|Variables:
| choices = Croat, Czech, German, Hungarian, Serbian, Slovak, Slovene, Swiss
|
|Name: console-data/keymap/qwertz/german/variant
|Template: console-data/keymap/template/variant
|Value: Standard
|Owners: console-data
|Flags: seen
|Variables:
| choices = Apple USB, Standard
|
|Name: console-data/keymap/qwertz/german/standard/keymap
|Template: console-data/keymap/template/keymap
|Value: latin1 - no dead keys
|Owners: console-data
|Flags: seen
|Variables:
| choices = Programmer, latin1, latin1 - no dead keys

Die Ausgabe von mergedebconf /var/cache/debconf/config.dat global.dat
schiebe man nun nach /var/cache/debconf/config.dat und kann nun wie
gewünscht installieren, ohne noch einmal behelligt zu werden.

Das Script liest beide Dateien Record für Record ein, und schreibt
dann auf seine Ausgabe jeweils den letzten Record, den er für einen
Namen gefunden hat. Das sorgt dafür, dass die Records aus der
global.dat die aus der config.dat vollständig ersetzen, was das
gewünchte Verhalten erzeugt.

Grüße
Marc

-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber          |   " Questions are the         | Mailadresse im Header
Karlsruhe, Germany  |     Beginning of Wisdom "     | Fon: *49 721 966 32 15
Nordisch by Nature  | Lt. Worf, TNG "Rightful Heir" | Fax: *49 721 966 31 29


--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-request@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)



Reply to: