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

flexible konfiguration (war: User Digest, Vol 16, Issue 33)



On Tue, Nov 30, 2004 at 09:10:57AM +0100, Albrecht Frank wrote:
> Andreas Schuldei wrote:
> >diese flexibilität ist langfristiges Entwicklungsziel. bei den
> >kleinen programmiertasks
> >http://www.skolelinux.org/de/contribute/development/coding_tasks
> >sind schon ein paar solche "flexibelmacher" dabei. 
> 
> Für kleinere Netze ist das starre Konzept nicht schlecht, sondern
> sehr gut bis ideal, aber für größere Installationen, wo sowieso der
> Skill vorhanden sein _muß_ würde ich es etwas anders angehen.

wie würdest du es denn angehen? die lösung die wir bauen sollte
beiden bedürfnissen möglichst gut passen.

> Wieso muß ich z. B. Pakete wegen der Konfiguration neu packen, um sie
> dann bei der Installation nachzukonfigurieren?

wie gut kennst du dich mit dem heutigen system aus? sagt dir
debconf etwas? oder debconf-preseeding? 

falls du dich damit auskennst versteh ich deine frage nicht
richtig und würde dich bitten sie nochmal anders zu formulieren.

ansonsten beschreibe ich mal kurz meine sicht der dinge hier:

Zur Zeit sind die meisten (oder alle) Konfigurationsoptionen die
ich auf der coding-tasks-seite kurz zur verbesserung beschrieben
habe fest verdrahtet, d.h. in files als konkrete werte
eingetragen.

das ziel ist, dass diese starren werte als default vorgegeben und
dann während der konfiguration benutzt werden, wenn nicht andere
vorgegeben werde.

zur konfiguration von paketen wird in debian debconf benutzt. es
erlaubt noch vor dem vollständigen entpacken der pakete config
scripte, die fragen an den administrator stellen können,
auszuführen. Solche fragen können übersprungen werden, wenn schon
werte (wie in unserem fall die default werte) in der debconf
datenbank vorhanden sind.

diesen weg gehen wir. er verhindert dass alle fragen an den admin
gestellt werden und erlaubt ein schnelleres und einfacheres (und
unter umständen (wenn die defaults nicht zutreffen) falsches)
installieren.

Diese art der stillen und flexibelen vorkonfiguration nennt sich 
debconf-preseeding, weil die debconf fragen mit vorgegeben
antworten schon im vorfeld geimpft werden.

man kann aber ein paket umkonfigurieren (wenn die
installationsskripte dafür ausgelegt sind) indem man
dpkg-reconfigure paketnamen ausführt.

dann werden selbst die debconf-fragen mit niedriger priorität
gestellt und können neu beantwortet werden. Mit diesen neuen
antworten kann dann ein neues konfigurationsfile geschrieben
werden.

dazu muss das postinst installationsskript die Fähigkeit
beherrschen, das konfigurationsfile, für das es zuständig ist,
neu zu schreiben. Um upgradefähig zu sein (was debian will) ist
es ausserdem notwendig das bestehende file zu parsen und als
vorlage wiederverwenden zu können.

Damit wäre dann deine Frage "warum muss ich pakete neu packen um
sie besser konfigurieren zu können" auch schon beantwortet: es
erfordert etwas programmierarbeit, das konfigurationsfile zu
parsen, die werte zu speichern, die ergebnisse der debconf fragen
danebenzuhalten und schliesslich ein neues konfigurationsfile zu
schreiben. Zuvor muss man natürlich die Punkte ausmachen, an
denen leute was ändern wollen wenn sie eine andere konfiguration
wünschen. Viele optionen sind zu vernachlässigen und würden, wenn
gewünscht, im Konfigurationsfile von Hand nachgetragen. die
wichtigen und die, die für unsere systemkonfiguration interessant
sind, sollten mit debconf-fragen anwenderfreundlich automatisch
erledigt werden.


> Wäre es da nicht besser,
> das Originalpaket unverändert zu lassen und erst bei der Installation zu
> konfigurieren?

das passiet, je nachdem wie du es siehst. ein originalpaket in
dem sinne gibt es allerdings nicht. wir wollen unsere
konfigurationsskripte und möglichkeinten in debian haben und nur
durch das pre-seeding zum debian-edu system gelangen. 

Reply to: