[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:04110] Re: about diversion
中原です。
> 樽石です。
> nakahara> す。purge 時に score を消したいというのであれば、
> nakahara>
> nakahara> postinst では単に
> nakahara>
> nakahara> touch ..../record
> nakahara>
> nakahara> postrm では
> nakahara>
> nakahara> if [ "$1" == "purge" ]; then
> nakahara> rm -f ...../record > /dev/null
> nakahara> fi
> nakahara>
> nakahara> とすればよいのではないですか。
> 単純にはいかないよというのは
> こうやってif文をつかわなければ無理だということです。
そういう意味では単純にはいきません。
> #ちなみにpostrmでそれをやろうとすると
> #ディレクトリが空でないから消せないよと言われます。
... の部分が .../xjump/record で .../xjump が消せないわけですね。
文句を気にしないのなら
rm -rf .../xjump
ですます手もありますが気持悪いかもしれませんね。
> #だからpostinstで作ったものはprermで
> #preinstで作ったものはpostinstで処理するべきではないでしょうか?
それも一理あります。ただ /var/lib/games/xjump.record だったら postrm
で問題ありません。パッケージに含まれる (すなわて prerm と postrm の間
で消される) /var/lib/games/xjump/ の下に作ったから問題なわけです。
では prerm で
if [ "$1" == "remove" ]; then
rm -f ...../record > /dev/null
fi
とすれば良いでしょう。(prerm は purge フェーズでは呼ばれません。)
問題点は record ファイルが conffiles と違って remove では残らないとい
うことですけど、スコアファイルなら許せますよね。
ただ、/var/lib/games/xjump を複数のパッケージで共有していれば、どっち
みち warning はでます。
> upgrade時はprermが呼ばれないという文書のせいで変な先入観を
> 持ってしまったようです。
prerm は、upgrade 時に (downgrade 時にも) 最初に呼ばれます。(old-prerm
upgrade new-version の形で。) 樽石さんの引用したマニュアルのステップ 2
にも書いてありますよね。upgrade も基本的には、古いパッケージを remove
してから、新しいパッケージを install するのですから。(実際はインストー
ルに失敗した時のためや、継承するファイルの為にいろいろ複雑なことをして
いますが。)
--
中原 早生
広島大学総合科学部
nakahara@xxxxxxxxxxxxxxxxxxxxx