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

[debian-users:12114] Re: historical info



樽石ã§ã™ã€‚

At Wed, 20 Jan 1999 22:44:52 +0900,
Mitsuru Oka <oka@debian.or.jp> wrote:

> 樽石> 事å‰æ¡ä»¶ã‚’ãã£ã¡ã‚Šè¨˜è¿°ã—ã¦ã„ã‚‹ã®ãŒ preinst ã§ã¯ãªã„ã‹ã¨ã„ã†
> 樽石> 考ãˆã¯ãŠã‹ã—ã„ã§ã—ょã†ã‹ï¼Ÿ 
> 樽石> 例ãˆã°ã€diversion ã‚’ã—ãŸã„å ´åˆãªã‚“ã‹ã¯
> 
> 樽石> dpkg-divert --package hoge --add --rename \
> 樽石>     --divert hoge.no hoge
> 
> 樽石> ã£ã¦äº‹å‰æ¡ä»¶ãã£ã¡ã‚ŠæŒ‡å®šã—ã¦ã¾ã™ã‚ˆã­ã€‚
> 
> ãˆã£ã¨ã€ã©ã“ãŒäº‹å‰æ¡ä»¶ãªã‚“ã§ã—ょã†ã‹??

「パッケージãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã‚‹å‰ã« hoge ã¨è¨€ã†åå‰ã¯é€€é¿
ã—ãªãã¦ã¯ã„ã‘ãªã„ã€ã¨ã„ã†äº‹å‰æ¡ä»¶ã§ã™ã€‚
#dpkg-divert ã‚’å‰ç½®ã™ã‚‹ã®ãŒé€€é¿äº‹å‰æ¡ä»¶ã‚’指定ã™ã‚‹æ–¹æ³•

> # ãã‚‚ãも「æ¡ä»¶ã®å……足ãƒã‚§ãƒƒã‚¯ã€ã«å‰¯ä½œç”¨ãŒã‚ã£ã¦ã¯ãªã‚‰ãªã„よ
> # ã†ãªæ°—ãŒã™ã‚‹...。

ãれをプログラムã®ãƒã‚°ã¨ã„ã†ã¨æ€ã„ã¾ã™ã€‚
#ã¾ã‚ã€ãƒã‚°ã®èµ·ã“ã‚Šã«ãã„仕様ã®æ–¹ãŒè‰¯ã„ã¨ã„ã†ã®ã‚‚ã‚ã‚Šã¾ã™ãŒâ€¦

> 樽石> ã‚ã¾ã‚Šã€å®Ÿè¡Œæ™‚ã«ãƒ¢ãƒ‡ãƒ«åŒ–ã—ãŸã‚‚ã®ã°ã‹ã‚Šã«ã™ã‚‹ã¨ã‚ªãƒ¼ãƒãƒ˜ãƒƒãƒ‰ãŒ
> 樽石> 大ãããªã‚‹ã¨ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚ãれより㯠debhelper ãŒã‚‚ã£ã¨é«˜æ©Ÿèƒ½
> 樽石> ã«ãªã£ã¦ã€ build 時ã«å‡¦ç†ã§ãるよã†ã«ã—ãŸã»ã†ãŒè‰¯ã„ã¨æ€ã„ã¾ã™ã€‚
> 
> 何ã§å®Ÿè£…ã™ã‚‹ã‹ã«ã‚‚よりã¾ã™ãŒã€ã›ã„ãœã„インタプリタã¨åŒã˜é€Ÿåº¦
> ã§æ¤œè¨¼ã§ãã‚‹ã¨æ€ã„ã¾ã™(ã‚€ã—ã‚ bash ã®æ–¹ãŒé…ã„ã‹ã‚‚)。確ã‹ã«
> debhelper ã¯ãã‚Œãªã‚Šã«ãƒ¢ãƒ‡ãƒ«åŒ–ã•ã‚Œã¦ã„ã‚‹ãªã¨ã¯æ€ã„ã¾ã™ãŒã€ãƒ«ãƒ¼
> ルã®è¨˜è¿°ã¨åˆ¶å¾¡ã®è¨˜è¿°ã¨ã¯å…¨ç„¶æ„味ãŒé•ã„ã¾ã™ã€‚

ルールを記述ã—ã¦ãれを dpkg ã§å‡¦ç†ã™ã‚‹æ–¹å¼ã¯ã„ã‚ゆる dpkg 主導
åž‹ã®ä¸­å¤®é›†ä¸­ç®¡ç†çš„ãªã‚·ã‚¹ãƒ†ãƒ ã§ã™ã€‚ã“ã®æ–¹å¼ã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå´ã®
設計ãŒæ¥½ã«ãªã‚Šã¾ã™ãŒã€ä¸€æ–¹ã§ã‚µãƒ¼ãƒå´ã®è² æ‹…ãŒå¢—ãˆã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚
ã—ã‹ã‚‚ã€ãã®äº‹å‰æ¡ä»¶ã«ãŠã„ã¦ãƒ«ãƒ¼ãƒ«ã¨ã„ã†è¨˜æ†¶ç´ å­ã—ã‹ãƒ‘ッケージ情報
ã«çµ„ã¿è¾¼ã¾ãªã„ã®ãªã‚‰ã€ã‚µãƒ¼ãƒã¯ã™ã¹ã¦ã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«å¯¾ã—ã¦ã€ã“ã®
ルールã¯ã‚ãªãŸã®ã‚·ã‚¹ãƒ†ãƒ ã§å¿…è¦ã‹ã¨ã„ã†æ¤œè¨¼ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚

ãŸã—ã‹ã«ã€ã“ã®ã‚ˆã†ãªãƒ‘ラダイムã§å‹•ãシステムã§ã‚‚悪ãã¯ãªã„ã§ã™ã—ã€
実際ãã®ã‚ˆã†ãªã‚·ã‚¹ãƒ†ãƒ ã‚‚多ã„ã‹ã¨æ€ã„ã¾ã™(?)。ã—ã‹ã—ã€ã‚‚ã£ã¨ã‚¨ãƒ¬ã‚¬ãƒ³ãƒˆ
ã«äº‹è±¡å‡¦ç†ã‚’考ãˆãŸå ´åˆã€ãªãœã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«å¿…è¦ãªéƒ¨åˆ†ã‚’サーãƒãŒ
検証ã—ãªã„ã¨ã„ã‘ãªã„ã®ã‹ã¨ã„ã†ç–‘å•ã«ã¶ã¡ã‚ãŸã‚Šã¾ã™ã€‚クライアントãŒ
å¿…è¦ãªä½œæ¥­ãªã‚‰ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒè¦æ±‚ã™ã¹ãã§ã‚ã‚‹ã¨æ€ã„ã¾ã™ã€‚ã¤ã¾ã‚Šã€ã‚µãƒ¼ãƒ
ã¨ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒãŠäº’ã„æ„å¿—ã‚’æŒã£ãŸãƒ—ロセスã®ã‚ˆã†ã«ãµã‚‹ã¾ã„ã€ãŠäº’ã„ãŒ
通信ã—ã‚ã„ãªãŒã‚‰ã€å‡¦ç†ã‚’進ã‚ãŸã»ã†ãŒè‡ªç„¶ã§ã¯ãªã„ã‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚

実ã¯ã“ã®æ–¹å¼ã¯ã€Œã‚ªãƒ–ジェクト指å‘パラダイムã€ã«è¿‘ã„ã‚‚ã®ãŒã‚ã‚Šã¾ã™ã€‚
ã¤ã¾ã‚Šã€dpkg 㨠パッケージ(ã®è¨­å®šãƒ—ログラム)ã¯ã€ãã‚Œãžã‚ŒãŒ
インスタンスã¨ã—ã¦ã€è‡ªåˆ†ã®æ±ºã‚られãŸä»•äº‹ã‚’ã“ãªã—ã¦ã„ã£ã¦ã€
çµæžœã‚’相手ã«ä¼ãˆã‚‹ã¨ã„ã†ã‚¹ã‚¿ãƒ³ã‚¹ã§ã™ã€‚ 例ãˆã°ã€å…ˆã®ã€Œé€€é¿ã€ã‚’
è¦æ±‚ã™ã‚‹äº‹å‰æ¡ä»¶ã‚’å¿…è¦ã¨ã™ã‚‹ãƒ‘ッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãŒã‚ã£ãŸã¨ã—ã¾ã™ã€‚
dpkg ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’ dpkg〠ã“ã®ãƒ‘ッケージを Hogeã€è¨­å®šãƒ—ログラムã®
インスタンスを hoge ã¨ã—ã¾ã™ã€‚

ユーザ: Hoge パッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’開始ã™ã‚‹ã€‚

dpkg 㯠Hoge ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’è¡Œã†æº–備を開始ã™ã‚‹ã€‚
 Hoge 㮠設定プログラムインスタンス hoge を作æˆã™ã‚‹ã€‚ 
 
dpkg: 「ãŠãƒ¼ã„〠hoge。 インストールã™ã‚‹ã‚ˆã€‚ã€
hoge: 「ãˆãƒ¼ã¨ã€ã˜ã‚ƒã‚〠foo ã£ã¦ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ foo.foo ã«ã—ã¦ãã ã•ã„。ã€
dpkg: 「了解。 ã˜ã‚ƒã‚ã€åœ§ç¸®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’展開ã™ã‚‹ã‚ˆâ€¦ã€

      …

dpkg: 「ã‚ã€ä¾å­˜é–¢ä¿‚ãŒã‚ã‚‹ã­ã‡ã€‚å›ã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã§ããªã„よ。ã€
hoge: 「ãˆã€ãã†ã§ã™ã‹ã€‚ã˜ã‚ƒã‚ã€foo.foo 㯠foo ã«æˆ»ã—ã¦ãã ã•ã„。ã€

dpkg〠depenency problem をユーザã«ç™ºè¡Œã€‚
ユーザ: インストールエラーをèªè­˜ã™ã‚‹ã€‚

ã¨ã„ã†ã€æ„Ÿã˜ã«ãªã‚Šã¾ã™(注 ã“ã®å‡¦ç†ã®è©³ç´°ã¯ Packaging Manual 6.3 ã‚’å‚ç…§)。
ルール化ã«ã‚ˆã‚‹ dpkg ã®ä¸€å…ƒç®¡ç†ã‚ˆã‚Šã¯ãšã£ã¨è‡ªç„¶ãªãƒ—ロセスã«ãªã‚‹ã¨æ€ã„ã¾ã™ã€‚
ã¾ãŸã€ã“ã®å‡¦ç†ã¯ OSI å‚照モデル ã§ã„ã†ãªã‚‰ã°ã‚¢ãƒ—リケーション層ã®
部分ã§ã—ã‹ãªã„ã®ã§ã€ä¸‹å±¤ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯å±¤ã‚„データリンク層ãªã©ã«ã¯
ä¾å­˜ã—ã¾ã›ã‚“。ã“ã®åˆ©ç‚¹ã¯ hoge ã®ãƒ—ロセスãŒã©ã“ã§å‹•ã„ã¦ã„よã†ãŒ
構ã‚ãªãã™ã‚‹ã“ã¨ã‚‚ã§ãã€ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆåŒ–ãªã©ã¨çµ„ã¿åˆã‚ã›ã‚Œã°éžåŒæœŸã§ã€
より多彩ãªè¨­å®šãƒ—ロセスを行ã†ã“ã¨ã‚’ã§ãるよã†ã«ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚

ルールã¨åˆ¶å¾¡ã‚’分ã‘ã‚‹ã¨ã„ã†è©±ã‚‚ã‚ã‚Šã¾ã™ãŒã€ã‚«ãƒ—セル化ã®æ–¹ãŒãšã£ã¨è‡ªç„¶ã ã¨
æ€ã„ã¾ã™ã€‚ã¾ãŸã€ preinstç­‰ ㌠shell script ãªã®ãŒã‚ã‚Œã ã¨ã„ã†ã®ã‚‚ã‚ã‚Šã¾ã™ãŒã€
ãã‚Œã¯ã€ãŸã¾ãŸã¾ shell script ãŒãƒ¦ãƒ¼ã‚¶å¯èª­ãªã®ã§ã€ãšã„ã¶ã‚“手抜ãã ã¨ã„ã†
風ã«æ„Ÿã˜ã¦ã—ã¾ã†ã¨ã„ã†ã®ãŒã‚ã‚‹ã¨æ€ã„ã¾ã™ã€‚preinst ç­‰ã®ã€è¨­å®šãƒ—ログラム
ã¯ã€ã‚·ã‚¹ãƒ†ãƒ ã§å®Ÿè¡Œå¯èƒ½ãªå½¢å¼ãªã‚‰ã°ãªã‚“ã§ã‚‚ã„ã„ã‚ã‘ã§ã€ã“れ㯠ELF ã®ã‚‚ã®
ãªã‚‰ã€ shell script よりã¯ã—ã£ã‹ã‚Šã—ãŸã‚·ã‚¹ãƒ†ãƒ ã®ã‚ˆã†ã«è¦‹ã‚Œã‚‹ã§ã—ょã†ã€‚
「ã¿ã‚Œã‚‹ã§ã—ょã†ã€ã¨ã„ã†ã®ãŒãƒã‚¤ãƒ³ãƒˆã§ã€ã‚ˆã†ã¯è¨­å®šãƒ—ログラムã¯å˜ã«å®Ÿè¡Œ
ファイルã ã¨ã„ã†ã ã‘ã®ã“ã¨ã§ã™ã€‚

ã“ã®ã¸ã‚“ã®è¨­å®šã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å´ãŒã©ã†ã‚ã‚‹ã¹ãã‹ã¨ã„ã†ã®ã¯ã€ã¾ãŸè­°è«–ã®
ã‚ã‚‹ã¨ã“ã‚ã ã¨æ€ã„ã¾ã™ãŒã€ç¾çŠ¶ Debian/GNU Linux ãŒã€ã‚«ãƒ¼ãƒãƒ«ã« Linux
を採用ã—ã¦ã„ãŸã“ã¨ã‹ã‚‰ã€ãƒ—ロセスã®å®Ÿè¡ŒãŒä¸€ç•ªã€è‡ªç„¶ã ã£ãŸã‹ã‚‰ãã†ã„ã†
実装ã«ãªã£ãŸã®ã ã¨æ€ã„ã¾ã™ã€‚Debian/GNU Java/OS ã ã£ãŸã‚‰ã€è¨­å®šãƒ—ログラムã¯
Class ã ã£ãŸã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。

----
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