VineSeed ML アーカイブ



[VineSeed:17617] Re: update: self-build-setup, install-assist-AdobeReader_jpn

  • From: Daisuke SUZUKI <daisuke@xxxxxxxxxxx>
  • Subject: [VineSeed:17617] Re: update: self-build-setup, install-assist-AdobeReader_jpn
  • Date: Wed, 20 May 2009 09:00:28 +0900
鈴木です。

On Wed, 20 May 2009 06:06:53 +0900
HARADA Kazutaka <kazutaka@xxxxxxxxxxxxxxxx> wrote:

> ↑この Requires は Requires(posttrans) としておいた方が
> 良かったですかね?
> 
> # Requires(pre) とか Requires(post) はちょくちょく見かけるものの、
> # posttrans はあまり見たことが無く、そもそも対応してもらえて
> # いるのかちょっと心配ですが…。

Requires(posttrans) はrpm-4.4では実装されていないと思います。

Requires(*) はそれのscriptletを実行する前に入っていなければなら
ないパッケージを記述するものなので、順番は重要ではなく同時に入れ
ばいいのであれば、Requiresに記述しておいたほうがいいです。

この例の場合、%posttrans で実行されているのは self-build-setup 
にあるスクリプトで、それが動けばいい(acroread自体が動くわけでは
ない)ので、self-build-setup が Requires(posttrans) に入るべき
ものになります。posttransは実装されていないので、Requires(post)
あたりにいれておくのがいいかと思います。
# Requires でも loop ができない限りは並べてくれるはずですが、
# loop ができたときに保障されなくなります。もっとも、大量の
# パッケージを同時にいれるインストーラなど以外ではそんなには
# loopは発生しませんが。。。

で、posttrans ですが、本来は全てのトランザクションの最後にまと
めて実行されるものみたいなのですが、apt の internal rpmlib を
使うとそうならないようです。(rpm を直接叩くか、external rpm を
使うようにすると順番がかわるようで。。)
#正しい順番になっていれば、全ての最後に実行されるので、Requires
#に書いておけば十分という話になります。

# apt をちょっと見ておきます。

-- 
Daisuke SUZUKI | daisuke@{linux.or.jp,dicey.org,vinecaves.com}
GnuPG Fingerprint = 7DE6 9AC6 5E5B 1AF8 B38E  0992 90BF 4C09 7432 2CB0
Founder & President, Project Vine.            http://vinelinux.org/
Founder & President, Vine Caves, Ltd.         http://vinecaves.com/
Founder & Trustee, Japan Linux Association.   http://jla.linux.or.jp/