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

[debian-users:12131] Re: historical info



岡@情報科学.高知大です。


"樽石"すなわちMasato Taruishiさんより:
樽石> 樽石です。

> 樽石> dpkg-divert --package hoge --add --rename \
> 樽石>     --divert hoge.no hoge
> 
> 樽石> って事前条件きっちり指定してますよね。
> 
> えっと、どこが事前条件なんでしょうか??

樽石> 「パッケージがインストールされる前に hoge と言う名前は退避
樽石> しなくてはいけない」という事前条件です。
樽石> #dpkg-divert を前置するのが退避事前条件を指定する方法

樽石さんがどういう意味で事前条件とおっしゃってるのかよく分か
らないですが、僕の言ってるのは Hoare の公理意味論における
pre-post formula です(こっちの言語理論って学部でやるのかな??)。
dpkg-divert はあくまで「作用」をもたらすものでしょう?


> 樽石> あまり、実行時にモデル化したものばかりにするとオーバヘッドが
> 樽石> 大きくなるとなると思います。それよりは debhelper がもっと高機能
> 樽石> になって、 build 時に処理できるようにしたほうが良いと思います。
> 
> 何で実装するかにもよりますが、せいぜいインタプリタと同じ速度
> で検証できると思います(むしろ bash の方が遅いかも)。確かに
> debhelper はそれなりにモデル化されているなとは思いますが、ルー
> ルの記述と制御の記述とは全然意味が違います。

樽石> ルールを記述してそれを dpkg で処理する方式はいわゆる dpkg 主導
樽石> 型の中央集中管理的なシステムです。この方式はクライアント側の
樽石> 設計が楽になりますが、一方でサーバ側の負担が増えることになります。
樽石> しかも、その事前条件においてルールという記憶素子しかパッケージ情報
樽石> に組み込まないのなら、サーバはすべてのクライアントに対して、この
樽石> ルールはあなたのシステムで必要かという検証が必要になります。

なんか話がだいぶ離れてしまってよく分からないんですが、dpkg
に組み込むとは言ってないですよ。むしろシステムをガチガチにし
ないためには dpkg あたりは単純なインストーラとして維持してお
いて(ただし {pre,post}{inst,rm}には一考を要する)、apt あたり
が条件の充足を検査してくれないかと思います。

# ちなみに control ファイルもある程度、制約条件を記述してる
  のですが、問題にしているのは {pre,post}{inst,rm} です。


樽石> ルールと制御を分けるという話もありますが、カプセル化の方がずっと自然だと
樽石> 思います。また、 preinst等 が shell script なのがあれだというのもありますが、
樽石> それは、たまたま shell script がユーザ可読なので、ずいぶん手抜きだという
樽石> 風に感じてしまうというのがあると思います。preinst 等の、設定プログラム
樽石> は、システムで実行可能な形式ならばなんでもいいわけで、これは ELF のもの
樽石> なら、 shell script よりはしっかりしたシステムのように見れるでしょう。
樽石> 「みれるでしょう」というのがポイントで、ようは設定プログラムは単に実行
樽石> ファイルだというだけのことです。

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

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

# 話が抽象化しすぎて分かりにくい....。
--
岡 充 (Mitsuru Oka)
高知大学理学部情報科学科4回生