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

[debian-devel:12586] Re: config file



At Mon, 3 Jul 2000 02:13:37 +0900,
Kikutani, Makoto <kikutani@xxxxxxxxxx> wrote:

> ...わかった。 conffiles に /etc/Muttrc を入れて再パッケージしたのち
> dpkg -i mutt-ja_1.0.1-2_i386.deb
> とかやって聞いてこないから駄目だと思ったんですが、
> こら入れるとき、古いmutt-ja消して、そんとき /etc/Muttrc も消されるので
> 聞いてこないのですね。
> 
> dpkg --purge mutt-ja 
> touch /etc/Muttrc
> 
> とかやったあと入れたら聞いてきました。

えーと、もしかして
 古い mutt-ja には conffiles がないけど、次のversionのconffiles
 に /etc/Muttrc を追加した時も、古いmutt-jaからconffilesつきの
 versionにupgradeした時も conffiles をみてほしい
でしょうか?

もしそうなら、たぶん今の dpkg の仕様では conffiles だけでは駄目ですね。
やるとしたら、preinst で

	if [ "$1" = "upgrade" ]; then
	   dpkg --compare-versions "$2" lt "1.0.1-2 || \
		mv /etc/Muttrc /etc/Muttrc.dpkg-old
	fi

とかして、保存するしかないと思います。

やや記憶があいまいですが、なぜこうなるかというと upgrade の際に 
前のpackageのファイルを消しますがconffilesつきでないversionの場合、
それをインストールする時に /etc/Muttrc も消してしまうからです。
conffilesつきの場合は upgrade の時に消えないでそのまま残ってconffiles
check がされます。dpkg --remove でも conffiles は残りますしね。

> と、ここまで書いて疑問が。
> dpkg で新しいのを入れるとき、前のパッケージを消して、新しいのを
> 入れるんだと思ってましたが、rpmでは新しいのを入れてから古いのを
> 消すそうですね。なぜなら、古いの消したあと、新しいのが入らなかったら
> まずいので。これdpkgも同じ?

えと 確か 新しいのをいれつついれかえていって、最後に旧バージョンにしか
存在しないファイルを削除だったかな。
-- 
鵜飼文敏