Re: Dependency problem when "post" runs command from the rpm

"Michael A. Peters" <[email protected]> Mon, 15 Sep 2008 20:24:00 -0700
Newsgroups gmane.linux.redhat.rpm.general
Message-ID <[email protected]>
Toralf Lund wrote:
> I've run into an installation order issue related to the "post" 
> scriptlet in one of my packages. Basically, this scripts executes a 
> (command-line only) program installed by the package, and this program 
> pretty much needs everything required by the package. The problem is, if 
> I install my package along with some of the required software, the 
> requirements are often installed *after* the "main" package - which 
> means the "post" script won't work because some of what the program 
> needs isn't installed yet.
> 
> So, this is when I use "Requires(post)", isn't it? But how do I set it 
> up? The Requires of the package is a very long list, and most of the 
> entries are added via the "AutoReqProv" mechanism, so duplicating the 
> info by hand for "Requires(post)" is rather hard. Is there an 
> alternative? Can I somehow say that everything in the main Requires list 
> is also required by "post"? Or alternatively, can I enable automatic 
> search for shared objects etc. for Requires(post) just like for Requires?

Perhaps my understanding is wrong - but I believe:

Requires(pre) is when something is required for a pre-install script.
Requires(post) is when something is required for a post-install script 
but not necessarily for the package itself - IE you could remove the 
dependency after the post script has run.

When installing a group of RPMs together, the post scripts are not run 
until after all the packages are installed - so if foo requires bar and 
the foo post script needs bar installed - just Requires: bar should 
ensure that bar is actually installed before the foo post scriptlet runs.

My understanding of this may not be 100%