[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