Discussion:
Problem mit dpkg-reconfigure
(zu alt für eine Antwort)
Marc Blumentritt
2005-12-05 14:20:15 UTC
Permalink
Hi,

ich habe phpldapadmin installiert. Nun wollte ich die Konfiguration mit
dpkg-reconfigure ändern. Es wird aber kein Dialog angezeigt, der Befehl
scheint ohne Fehler durchzulaufen. Erst wenn ich deinstalliere und
wieder installiere kommt der volle Konfigurationsdialog.

Wie kann ich das ändern?

Danke
Marc
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Frank Küster
2005-12-05 15:40:22 UTC
Permalink
Post by Marc Blumentritt
Hi,
ich habe phpldapadmin installiert. Nun wollte ich die Konfiguration mit
dpkg-reconfigure ändern. Es wird aber kein Dialog angezeigt, der Befehl
scheint ohne Fehler durchzulaufen. Erst wenn ich deinstalliere und
wieder installiere kommt der volle Konfigurationsdialog.
Wie kann ich das ändern?
Ich gehe mal davon aus, dass du wirklich *nur* phpldapadmin
deinstalliert und neuinstalliert hast, nicht ein anderes Paket gleich
mit, das dann die entsprechenden Fragen gestellt hat. Dann scheint mir
das einfach ein bug in phpldapadmin zu sein.

Ich an deiner Stelle würde einfach mal einen bugreport machen. Wenn du
erst selber etwas rumspielen möchtest, kannst du auch

- die Skripte /var/lib/dpkg/info/phpldapadmin.{config,postinst} unter
die Lupe nehmen, ob du den Fehler findest

- dpkg-reconfigure mit der Umgebungsvariablen DEBCONF_DEBUG=developer
laufen lassen.

Gruß, Frank
--
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer
Marc Blumentritt
2005-12-05 17:50:25 UTC
Permalink
Post by Frank Küster
Ich gehe mal davon aus, dass du wirklich *nur* phpldapadmin
deinstalliert und neuinstalliert hast, nicht ein anderes Paket gleich
mit, das dann die entsprechenden Fragen gestellt hat. Dann scheint mir
das einfach ein bug in phpldapadmin zu sein.
Nein, ich habe alle automatischen Abhängigkeiten mit entfernt, habe aber
beim Installieren explizit darauf geachtet, ob der debconf Dialog nun
von phpldapadmin stammt, oder von einem der abhängigen Pakete. Es war
definitiv phpldapadmin.
Post by Frank Küster
Ich an deiner Stelle würde einfach mal einen bugreport machen. Wenn du
erst selber etwas rumspielen möchtest, kannst du auch
- die Skripte /var/lib/dpkg/info/phpldapadmin.{config,postinst} unter
die Lupe nehmen, ob du den Fehler findest
- dpkg-reconfigure mit der Umgebungsvariablen DEBCONF_DEBUG=developer
laufen lassen.
Beide Tipps haben mir weitergeholfen. Nach dem Studium von
/var/lib/dpkg/info/phpldapadmin.{config,postinst} ist mir klar geworden
(OK, es war try and error), dass ich /etc/phpldapadmin/config.php und
/usr/share/phpldapadmin/config.php (ein Link auf
/etc/phpldapadmin/config.php) entfernen muss, wenn ich den kompletten
Dialog haben will.

Wenn man nur /etc/phpldapadmin/config.php entfernt, gibt es in
/var/lib/dpkg/info/phpldapadmin.postinst einen Fehler beim Erstellen des
Links, da er ja bereits existiert.

Wenn keine Datei entfernt wird, wird erst gar kein Dialog aufgerufen,
sondern einfach die alte config.php beibehalten.

Ich weiß nicht, ob das so geplant ist vom Paketbetreuer. Sollte man das
als Bug senden?

Grüße und Dank
Marc
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Frank Küster
2005-12-05 18:10:08 UTC
Permalink
Post by Marc Blumentritt
Wenn man nur /etc/phpldapadmin/config.php entfernt, gibt es in
/var/lib/dpkg/info/phpldapadmin.postinst einen Fehler beim Erstellen des
Links, da er ja bereits existiert.
Siehst du einen Grund, warum der symlink erst im postinst erstellt wird,
anstatt ihn im Paket mitzuliefern? Hat man denn eine Möglichkeit, den
symlink auf eine andere Datei legen zu lassen?
Post by Marc Blumentritt
Wenn keine Datei entfernt wird, wird erst gar kein Dialog aufgerufen,
sondern einfach die alte config.php beibehalten.
Ich weiß nicht, ob das so geplant ist vom Paketbetreuer. Sollte man das
als Bug senden?
Ja, definitiv. Selbst wenn es vom Paketbetreuer so geplant ist - das
unterläuft einfach den Zweck von dpkg-reconfigure, und wenn es so
geplant ist, hat er halt was nicht verstanden. Du kannst ihm sagen,
dass er im config-Skript (und IIRC auch im postinst) auf das Argument
testen kann: Im upgrade-Fall ist das "configure", wenn dann der Link
schon existiert braucht er nichts tun. Im dpkg-reconfigure-Fall ist es
aber "reconfigure", und dann sollte das Skript die Fragen stellen, auch
wenn die Datei schon da ist.

Gruß, Frank
--
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer
Marc Blumentritt
2005-12-06 09:50:12 UTC
Permalink
Post by Frank Küster
Siehst du einen Grund, warum der symlink erst im postinst erstellt wird,
anstatt ihn im Paket mitzuliefern?
Eigentlich nicht. Die Datei /etc/phpldapadmin/config.php wird zwar erst
bei der Konfiguration erzeugt, aber dann würde der Link bei der
Installation (vor der Konfiguration) einfach auf eine nicht vorhandene
Datei zeigen. Ist allerdings auch nicht schön. Naja, man kann sicherlich
in /usr/share/phpldapadmin/config.php herumspielen und das anpassen.
Allerdings sollte man vielleicht den ganzen Rekonfigurationsmechanismus
von phpldapadmin von vorne durcharbeiten. Ich überblicke den aber nicht
wirklich, weil ich davon, offen gesagt, keine Ahnung habe.
Post by Frank Küster
Hat man denn eine Möglichkeit, den symlink auf eine andere Datei legen zu lassen?
Die Frage verstehe ich jetzt nicht. Bei der (Re-)konfiguration wird man
nicht gefragt, da wird der Link gar nicht erst erwähnt. Auf den Link bin
ich erst durch /usr/share/phpldapadmin/config.php gestoßen.
Post by Frank Küster
Ja, definitiv. Selbst wenn es vom Paketbetreuer so geplant ist - das
unterläuft einfach den Zweck von dpkg-reconfigure, und wenn es so
geplant ist, hat er halt was nicht verstanden. Du kannst ihm sagen,
dass er im config-Skript (und IIRC auch im postinst) auf das Argument
testen kann: Im upgrade-Fall ist das "configure", wenn dann der Link
schon existiert braucht er nichts tun. Im dpkg-reconfigure-Fall ist es
aber "reconfigure", und dann sollte das Skript die Fragen stellen, auch
wenn die Datei schon da ist.
Ich habe mir mit DEBCONF_DEBUG=developer dpkg-reconfigure phpldapadmin
das ganze mal angeschaut. Hier die wichtigen Zeilen:

host:~# DEBCONF_DEBUG=developer dpkg-reconfigure phpldapadmin
debconf (developer): starting /var/lib/dpkg/info/phpldapadmin.config
reconfigure 0.9.5-3sarge2
debconf (developer): <-- VERSION 2.0
...
debconf (developer): --> 0 ok
debconf (developer): starting /var/lib/dpkg/info/phpldapadmin.postinst
configure 0.9.5-3sarge2
debconf (developer): <-- VERSION 2.0
...
debconf (developer): <-- STOP

phpldapadmin.config wird zwar mit reconfigure aufgerufen, schaut man
sich aber das script an, wird das Argument gar nicht abgefragt.
phpldapadmin.postinst wird mit configure aufgerufen, was normal ist? Das
Argument wird auch in phpldapadmin.postinst abgefragt, aber da passiert
dann (wie bereits beschrieben) nix, wenn config.php bereits existiert,
bzw. es tritt ein Fehler auf, wenn config.php gelöscht wurde, aber der
Link noch existiert.


Ich werd mal nen Bugreport schreiben.

Grüße
Marc
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

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