鈴木です。
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/