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

Re: rpm and post script install/run order question (texlive) [2]

Patrice Dumas wrote:

My previous mail had errors, sorry. Resending.

I have some questions regarding rpm installation and script run order.
It is for texlive, and I use letters that corresponds with:

A texlive
B texlive-texmf
C kpathsea
D texlive-fonts
E texlive-fonts-texmf

sA1 updmap-sys
sA2 texconfig-sys

We have:

Requires: B C D
Requires(post): sA2

Requires(post): sA1 sA2

C doesn't requires anything, but has a post script (ldconfig) that must
  be run before it can be used by programs in A or D.

Requires: E C
Requires(post): sA2

Requires(post): sA1 sA2

The script sA1 is in A, but to be succesfull, it has to be run with A, B,
C and D installed. If run multiple time, only the last run must be
succesfull, but it should be run with all the packages that Requires it
installed (B E), it is not a problem if previous runs are done wrong.
sA2 is in A, but only requires A to be present to be successfull.

Unless I am wrong, in that kind of setup all the packages will be
installed in the same batch (except maybe for C, but no user will
ever install C directly).

I am not sure, however, what would be the order of installation of those
packages, nor when would sA be called. For example, since C doesn't have
any Requires(post) on A would it be possible to have an install order
with C in the end, and the post scripts run before C is installed?
Maybe there are other subtle possible failures? Also is the installation
and post script run order dependent on which package is selected for,
say a yum install, that is will:

yum install A
yum install E
yum install B

and so on and so forth give the same installation and post script run

My question may be a bit confused, so don't hesitate to ask for more
info. Also I couldn't find a place where such issues are explained in
depth. In the usual rpm manuals there are some explanations, but not
precise enough. Is there some doc I could have missed?

The example is a bit simplified, since additionnally there is a
dependency cycle between texlive-dvips and texlive-fonts, and also there
is texlive-latex, but the issues faced shouldn't be different than for
the example above, unless I missed something.


Well, from looking at the dependencies you listed here the dependency tree would look like this:

updmap-sys    texconfig-sys    C
  /|\             /|\
   |               |
           E       B

So effectively this means that on the 1st level of the tree updmap-sys, texconfig-sys and C can be ordered in any way as well as on the 2nd level E and B as they have no cross and/or chained dependencies.

So to answer your questions:

1) Can C be installed prior to sA being called: No, as the dependency chain clearly require B, C and D and therefore those will be installed prior to A.

2) Will the various yum install [A|E|B] give the same script run orders? Thats not 100% guaranteed as the installation order of E and B as well as the installation of updmap-sys, texconfig-sys and C are not fixed by any requires, so using a subset of packages to install first (e.g. only updmap-sys, texconfig-sys and C) might result in a different order for those packages than using a "full" install with A.

There might be some code inside rpm that could possibly have updmap-sys, texconfig-sys and C be installed in the same order despite having not dependencies between each other, but from an algorithmical point of view you can't and shouldn't rely on it.

Or to put it differently: If you need those packages to be installed in a specific order then just use Requires.

On the other hand, if those are "soft" requires then things get tricky , e.g. IF updmap-sys, texconfig-sys and C get installed then C needs to be installed after updmap-sys and/or texconfig-sys. I remember vaguely that such "soft" requires (which don't pull in packages automatically but which will be honored in case it is already in the transaction) were either planed or even already put into rpm, but Panu/JBJ can probably tell you a lot more in detail about that.

Read ya, Phil

Philipp Knirsch              | Tel.:  +49-711-96437-470
Team Lead Core Services      | Fax.:  +49-711-96437-111
Red Hat GmbH                 | Email: Phil Knirsch <pknirsch redhat com>
Hauptstaetterstr. 58         | Web:   http://www.redhat.com/
D-70178 Stuttgart, Germany
Motd:  You're only jealous cos the little penguins are talking to me.

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