On 07/14/2014 02:05 PM, Daniel John FitzGerald wrote:
Hi,
I've spent considerable time lately trying to find an answer to this
question, but have not had much luck. I'm working on a software
project that builds for both RHEL and SLES, but the required packages
change across systems (for instance, on RHEL we require httpd, whereas
on SLES its apache2-prefork). I would like to create a single RPM for
all systems that conditionally changes the "Requires" tag based on
what distribution the RPM is being installed to, but I'm learning that
this is not possible.
What is considered to be the best practices when creating an RPM
targeted for different Linux distributions? That is, can we have "one
RPM to rule them all", or is it considered preferable to have a
different RPM generated specifically for each Linux distribution
supported. Furthermore, is there any place where I can find those
best practices documented somewhere (ie: "written in stone" on a
RedHat or RPM website).
Don't do "one binary RPM to rule them all". The only way to have a
single binary RPM is to have a setup script in %post - and that makes
users like me nervous, plus the files created by setup aren't tracked by
the RPM.
Your goal should be to have one SRPM (or at least one SPEC file), and
build for each target system. In the SPEC file, %ifos and other
conditionals tweak dependencies, post install processing, etc. The
resulting binary RPMs then install and track only the files needed for
the target distro/OS.
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list