rpm+yum
- distribution標準
- 依存性解析が遅いときがある
- 大量(100>)にupdateするとおかしくなることがある。とくにyum自身が書き換わる場合。さきにyum update yumすべし。
- プラットフォーム依存
- binary生成が簡単とはいえ手動、rpmbuild -taなど
- 何も考えなくていいので楽
- build済みなので速い、とくに台数が多いときは有利だろう
- yumのサーバ(createrepo + http)を立てて、そこを参照すればかなり自由にできる
setuptools/easy install(python)
- pythonの世界、でもまあ、setup.py bdist_rpmで回避可能なことも。
- プラットフォーム依存していない
- 依存性管理がタコな時がある。rpmでいれたpackageがversion管理用のfile(egg-info
)を持っていないときなど - package serverの立て方は?(知らないだけだとおもうが・・・)
macportsの不満点
- 標準じゃない(finkも同じ)
- 作り方不明
- 依存解析が遅い
- buildに失敗することがある。
- buildするので時間が掛かる。作業台数が多いときはひどい目に遭いそう。
う~んこれだけ書いただけでもこなれてない感じがする。
redhatに乗っかっているcentosと比較するのが間違いだが。
しかしなんでどいつもこいつも依存解析が遅いのだろう?naiveにはsatisfiedとrequestedの辞書を持っていて、
最初は両者とも空
requestedにインストール要求されたpackageが入る
while requested:
requestedからpackageを取り出す。
packageが依存するpackageでa)かつb)なものをrequestedに追加する。
a)satisfiedに存在しない
b)systemに存在しない
取り出したものをsatisfiedに入れる。
assert requestedは空
satisfiedに残ったものをインストールする。
とかになるとおもう。なんでこれが遅いんだか。
本当はrpmbuildに必要なデータを取ってくる方法を記述したfileを用意してそれに対してrpmbuildが走り、rpmがcacheされるような仕組みがいいんですけどね。portsとrpmのいいとこ取りみたいな。
fileにsourceをgetする方法を記述しておけば(たとえばsvn updateなりgit pullなり)、
勝手にversion番号を打ってくれて、rpbuild。あとはyumでウマーな仕組み。
0 件のコメント:
コメントを投稿