On Oct 12, 2011, at 11:38 AM, Levon Poghosyan wrote:

> Hello,
> 
> How can I detect if the execution of post scriptlet of the rpm package failed 
> ? 

The simple answer here is:
        You don't.

All I mean by that is that the %post script needs to be written "robustly"
so that the exit code is always 0.

If you need/want to tell whether some specific operation "worked",
then write a test after rpm has run for that specific operation.

Another approach would be to have the %post script register its
state somewhere in /var so that you can easily test whether the script
"worked" or not.

> I've generated the and rpm package which has a test command "lalala" in post 
> install section. So during the installation it prints out information that 
> command lalala was not found but the installation is still successful.
> How do I identify this failure from post install section. 

A %post "scriptlet" (the only difference between script and scriptlet is that a
scriplet is macro expanded and may eventually have some envvar's
prepended instead of having RPM add to the environ directly) is
just a script.

SO use test(1) to test for existence and executability, and write that into
the %post section directly.

Because a %post is part of a package install state machine, the script
SHOULD return 0 for all but catasstrophic faiulures.

There are side-effects of returning failure from %post, the most important
of which is that on an upgrade, the erase will be skipped if/when the install 
fails.

> 
> Please note I'm not interested in failure in other places, I just need to be 
> informed in post install scriptlet failed.
> 

Personal;ly, I'd just write the %post script to write 1 line into 
/var/lib/application/state
with the message
        The %post script "succeeded"
or (on failure)
        The %post script "failed".

I'd have to know more about what is implied by a %post success/failure
in order to suggest some other approach.

hth

73 de Jeff

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
User Communication List                             rpm-users@rpm5.org

Reply via email to