On Wed, Jan 13, 2021 at 11:02 AM opensuse.lietuviu.kalba
2021-01-13 15:46, Neal Gompa rašė:
On Wed, Jan 13, 2021 at 8:43 AM Stephan Kulow
Am 13.01.21 um 14:31 schrieb Neal Gompa:
On Wed, Jan 13, 2021 at 8:26 AM Stephan Kulow
> Am 13.01.21 um 14:08 schrieb Neal Gompa:
>>> I do not think so. Running scripts is just another node to execute in the
>>> "to-do DAG". A %post just needs to run (sometime) after
installation of the
>>> package, and, if another pkg B requires A, said %post may need to be ordered
>>> before B's installation. But that should be all.
>> We do because we don't know what a script *does*. Anyone can do
>> *anything* in a script, so it is unsafe to try parallelization with
>> arbitrary scripts.
> Installing packages is a pretty unsafe operation to begin with :)
> I must say I can follow Jan's argumentation more than yours.
You don't know what the script is doing, which means you don't know if
you're creating a race condition between two package installs. If two
independent packages are modifying the same file at the same time,
what is the result? This is just one example of the problems that
parallel arbitrary script execution can cause.
Well, you can still serialze the scriplet part and parallelize the payload
uncompression and file installation
If we didn't have %pretrans and %pre scriptlets, I would agree with you. :(
Most packages don't use scriptlets – these should be quite safe for
parallelization (or installing selevel packages at once). Remaining
packages (with scriptlets) – could be serialized.
That is not true. Because of the dependency web among libraries,
applications, and services, scriptlets are in the hot path pretty much
all the time.
openSUSE also aggressively uses things like alternatives, which adds
even more scriptlet heavy interaction. In some cases, openSUSE does as
much script magic as Debian (which is usually my bar for "too much
scripting to work around package management").
真実はいつも一つ！/ Always, there's only one truth!