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

Re: Konfigurationsfiles mit dpkg wiederherstellen



Richard Mittendorfer <delist@gmx.net> wrote:

> Also sprach Frank Küster <frank@debian.org> (Wed, 16 Nov 2005 09:31:37
> +0100):
>> Richard Mittendorfer <delist@gmx.net> wrote:
>> > Also sprach Frank Küster <frank@debian.org> (Tue, 15 Nov 2005 18:39:43
>> > +0100):
>> >> Richard Mittendorfer <delist@gmx.net> wrote:
>> >> > apt-get install apache2 --reinstall 
>> >> >
>> >> > ..damit laedst du das gesamte packet nochmal runter & installierst
>> >> > drueber. 
>> >> 
>> >> ... außer die gelöschten conffiles.  Sicher kann man die dpkg-Option
>> >> --force-confmiss auch irgendwie in apt's Konfigurationsdateien
>> >> angeben.
>> >
>> > Den Apache wollt ich jetzt nicht abwuergen,
>> 
>> Wieso wäre das ansonsten nötig gewesen?
>
> Weil hier ja debconf bei einer installation von apt aufgerufen wird und
> der mir vermutlich den apache mit der nicht modifizierten httpd.conf
> restartet haette. Auch handelt sich's um 1.3 und nicht um 2 wie beim
> OP.

Ich kann über den alten Apachen nichts sagen - aber wenn ein Programm
beim upgrade (und das reinstallieren der gleichen Version sollte genauso
behandelt werden) Konfigurationsdateien verändert, dann hat es einen
schweren Bug.  Wenn debconf verwendet wird, muss das die existierenden
Konfigurationsdateien einlesen oder parsen, und die vorher vorhandenen
Einstellungen als default-Antwort vorgeben.  Im noninteractive-Modus
muss dann hinterher genau das gleiche rauskommen wie vorher.  

In der Praxis kann das bei upgrades ein bisschen anders sein: wenn
z.B. die neue Version ohne eine bestimmte Änderung nicht laufen würde,
wird der Upgrade diese vielleicht erzwingen müssen.  Aber bei einem
reinstall der gleichen Version darf da nicht verändert werden.

>> > die (vorher entfernte) conf
>> > von distcc wird sehrwohl wieder hergestellt. AFAIK trifft das mit
>> > "apt-get install --reinstall"  auch auf andere Packete zu
>> 
>> Das wäre ein Bug in apt-get - entweder sollten sie hinschreiben, dass
>> sie bei --reinstall dpkg mit --force-confmiss aufrufen,
>
> Das wuerde zutreffen, wenn ein derartiger Eintrag von apt an dpkg
> uebergeben wuerde (/etc/apt.conf[.d])?
>
> man apt-get sagt zu --reinstall nur
>
> --reinstall
>     Re-Install packages that are already installed and at the newest
>     version. Configuration Item: APT::Get::ReInstall.
>
> --reinstall wuerde also ein fehlendes Teil erneut installieren, da
> sich's nicht mehr am System befindet. So zumindest denk' ich mir das.

Das stimmt schon, aber es betrifft nur normale Dateien - gelöschte
Konfigurationsdateien dürfen nicht wiederhergestellt werden, es sei denn
eben mit der dpkg-Option --force-confmiss.

>> oder noch besser
>> es lassen.  Bust du dir sicher?
>
> Durchaus. Und ich finde dieses behavior korrekt, so werden nicht
> vorhandene Dateien beim --reinstall wiederhergestellt (In diesem Fall
> mit den gemerkten debconf Angaben) und Kaputtgegangene ebenfalls. 

Nein, das wäre, je nachdem wie man es sieht, eine dicke Policy-Verletzung
oder nur ein (IMHO schwerwiegender) Fehler in der Dokumentation.

Aber ich kann es hier nicht nachvollziehen:

riesling:~# dpkg -S /etc/issue
base-files: /etc/issue
riesling:~# rm /etc/issue
riesling:~# apt-get --reinstall install base-files
Reading package lists... Done
Building dependency tree... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 34.0kB of archives.
After unpacking 0B of additional disk space will be used.
Do you want to continue [Y/n]? 
WARNING: The following packages cannot be authenticated!
  base-files
Authentication warning overridden.
Get:1 http://localhost sid/main base-files 3.1.9 [34.0kB]
Fetched 34.0kB in 0s (416kB/s)
(Reading database ... 9882 files and directories currently installed.)
Preparing to replace base-files 3.1.9 (using .../base-files_3.1.9_i386.deb) ...
Unpacking replacement base-files ...
Setting up base-files (3.1.9) ...

riesling:~# ls /etc/issue     
ls: /etc/issue: No such file or directory
riesling:~# 

> Wenn's also ein bug waer' - ich hielt's bisher fuer ein feature :)

Das Löschen einer Konfigurationsdatei ist auch nur ein "Konfigurieren".
Das darf nicht einfach rückgängig gemacht werden.

Gruß, Frank
-- 
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer



Reply to: