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