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[1] 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 [1][2]) treat `Requires(pre)` same as `Requires` during removal which is IMO wrong. At least RPM and DNF are buggy in the same way :). [1] https://github.com/openSUSE/libsolv/issues/126 [2] https://bugzilla.redhat.com/show_bug.cgi?id=1292915 _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxxxxx http://lists.rpm.org/mailman/listinfo/rpm-list