What is the function of 'Requires(pre)' in spec file?
jsilhan at redhat.com
Thu Mar 24 17:29:26 UTC 2016
Hi, I've already responded but I don't know whether it was delivered or not (I was
not subscribed to this list).
> On 24. 3. 2016 at 10:31:09, Florian Festi wrote:
> > On 03/24/2016 09:58 AM, Zhang Freeman wrote:
> > > I post to ask for the differenced between 'Requires' and 'Requires(pre)'
> > > used in RPM spec file.
> > >
> > > As RPM wiki tells, dependency defined via 'Requires(pre)' should be
> > > fulfilled before installation and can be freely removed after
> > > installation, and 'Requires' should be fulfilled after installation but
> > > before execution.
> > >
> > > However, things won't stick to the script in real life. I find these two
> > > work in the same way.
> > >
> > > Suppose I want to install package A, which depends on package B. RPM
> > > stops the process and warns me the dependency. After B is installed,
> > > installation of A turns to be succeed. Then I remove B, RPM erases both
> > > A and B! No matter it is "Requires(pre)" or "Requires".
> > >
> > > Shouldn't A stay operational after I remove B if I use 'Requires(pre)' ?
> > Well, it should... not sure if the implementation really fully does it
> > that way. Also note, that there might be other dependencies for package
> > B that may prevent the erasure. Also note that dependency solver like
> > yum/dnf/zypper/... may have different idea of what packages to remove
> > than rpm itself (which actually doesn't select packages to remove a t
> > all, but just spits out error messages).
DNF (more specifically libsolv ) treat `Requires(pre)` same as `Requires`
during removal which is IMO wrong. At least RPM and DNF are buggy in the same
More information about the Rpm-list