[Rpm-maint] Enforce install/erase order without adding a Requires:

Phil Knirsch pknirsch at redhat.com
Fri Nov 26 13:19:33 UTC 2010

On 11/26/2010 10:53 AM, Panu Matilainen wrote:
> On Fri, 26 Nov 2010, Michael Schroeder wrote:
>> On Fri, Nov 26, 2010 at 10:22:56AM +0200, Panu Matilainen wrote:
>>> Kernel initrd creation (mkinitrd, dracut) mechanisms have special needs:
>>> they can have support for arbitrary number of rare, special hardware
>>> packeges that shouldn't be dragged in on every installation. Yet if
>>> those
>>> optional packages are installed, they should be installed before the
>>> initrd generation to ensure latest versions (be it bug/security fix or
>>> just an enhancement) get bundled up in the initrd on updates.
>>> Requires are
>>> currently needed to ensure the ordering, which is bad.
>>> Suggests/Recommends
>>> etc are not at all optimal here either as their behavior depends on
>>> depsolver policy.
>> Oh, but in that case you ned the reverse version of Requires,
>> because the kernel package cannot know all special hardware packages.
>> Thus something like "Enhances: kernel", but with a different
>> keyword.
> At least in Fedora, the dependencies for initrd needs are in dracut,
> which in turn knows which extra packages it currently supports. But yes,
> there should be a reverse variant of the ordering syntax too.

Well, partially.

During installation it's actually determined by anaconda, e.g. for many 
of the various options around storage (luks, fcoe, lvm, dmraid, 
multipath etc) anaconda simply installs those it needs to generate and 
configure those, which in turn then get picked up automatically by 
dracut to generate the initramfs.

Same goes for later in the system when you haven't set up e.g. a LVM 
during installation you'll first need the tools (aka, install them 
manually to configure and setup your lvm devices) and afterwards, in 
case you need those devices during the initramfs stage you'll need to 
recreate the initramfs, but here again the tools will obviously then be 
available as you needed those previously to do the setup anyway.

Thanks & regards, Phil

TL;DR: Dracut in itself tries to not require any of the tools it ships 
modules for but instead relies on either the installer or the system 
later to have the tools installed which are needed in the modules for 
bootup in the created initramfs.

Philipp Knirsch              | Tel.:  +49-711-96437-470
Supervisor Core Services     | Fax.:  +49-711-96437-111
Red Hat GmbH                 | Email: Phil Knirsch <pknirsch at redhat.com>
Hauptstaetterstr. 58         | Web:   http://www.redhat.com/
D-70178 Stuttgart, Germany
Motd:  You're only jealous cos the little penguins are talking to me.

More information about the Rpm-maint mailing list