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

[debian-users:12136] Re: historical info



樽石です。

At Thu, 21 Jan 1999 21:23:55 +0900,
Mitsuru Oka <oka@debian.or.jp> wrote:

> > 樽石> dpkg-divert --package hoge --add --rename \
> > 樽石>     --divert hoge.no hoge
> > 
> > 樽石> って事前条件きっちり指定してますよね。
> > 
> > えっと、どこが事前条件なんでしょうか??
> 
> 樽石> 「パッケージがインストールされる前に hoge と言う名前は退避
> 樽石> しなくてはいけない」という事前条件です。
> 樽石> #dpkg-divert を前置するのが退避事前条件を指定する方法
> 
> 樽石さんがどういう意味で事前条件とおっしゃってるのかよく分か
> らないですが、僕の言ってるのは Hoare の公理意味論における
> pre-post formula です(こっちの言語理論って学部でやるのかな??)。

うーむ、わかりません。どういう理論でしょう?

> dpkg-divert はあくまで「作用」をもたらすものでしょう?

それは、問題なのでしょうか?
他に対して「作用」を要求するのはごく一般的だとおもいますけど。。。

> に組み込むとは言ってないですよ。むしろシステムをガチガチにし
> ないためには dpkg あたりは単純なインストーラとして維持してお
> いて(ただし {pre,post}{inst,rm}には一考を要する)、apt あたり
> が条件の充足を検査してくれないかと思います。
> 
> # ちなみに control ファイルもある程度、制約条件を記述してる
>   のですが、問題にしているのは {pre,post}{inst,rm} です。

具体的にどう問題でどうするのが良いのか教えてください。
#僕が、現状思っている問題は、システム状態の変更が、実行時まで
#判明しないというのがあります(alternatives なんかは最初にわかって
#いると便利)。


> 樽石> ルールと制御を分けるという話もありますが、カプセル化の方がずっと自然だと

<snip>

> カプセル化の実体こそ、ルール記述(=データ)と制御(=手続き)の明
> 確な分離です。オブジェクト=データ+手続きと言うと、よく、両者
> をごちゃまぜにすることと混同される方がいるようですが、混ぜる
> のではなくて明確に切り分けて考える行為です。

岡さんがいうルールと制御の分離はカプセル化を念頭においてる
ものなのでしょうか?僕は、ルールはルールとして、dpkg に処理
させて、そのあと制御を実行するという分離を言っているんだと
思っているのですが。

> 実行ファイルであることが問題なんです。

これは、予想外の行動もできるという意味で問題なんでしょうか?
それとも、パッケージ側には全く実行を許さないということでしょうか?


> # 話が抽象化しすぎて分かりにくい....。

僕は現状の dpkg のシステムを (簡易)Java であらわすなら以下のような
位置づけでないかと思っています。

interface Package {
  preinst(Object obj);
  postinst(Object obj);
  prerm(Object obj);
  postrm(Object obj);
  getArchive();
  ...
}

class Dpkg {

 Available avail;
 Status status;
 Diversion divinf;
 Alternative altinf;
 .... 

 /** Package をインストールする。 中身の記述は適当 */
 public void install(Package pkg) throws DpkgException {
   pkg.preinst(new DpkgAction("install"));
   try {
     unpack(pkg);
   } catch(DpkgException ex) {
     if(status.isOldpkg(pkg)) {
       status.getOldpkg(pkg).postrm(new DpkgAction(ex));
     }
     throw ex;
   }

   and_so_on();

  }
 }

}

----
Masato Taruishi <taruis-m@xxxxxxxxxxxxx> | University of Electro Comunications
                <taru@debian.or.jp>      |   Department of Computer Science
                <taru@xxxxxxxxxxxxx>     |              Junior
http://www.sunicom.co.jp/~taruisma/      |      Chofu city Tokyo, JAPAN  
   Key fingerprint = 49 46 74 E1 8D D1 EB 56  8D CA 2A 20 14 9E A9 25