We want to stop systemd from being added to docker images, because of rpm requiring systemctl.

Kalev Lember kalevlember at gmail.com
Wed Apr 30 14:05:37 UTC 2014


On 04/29/2014 12:31 PM, Lennart Poettering wrote:
> On Mon, 28.04.14 15:11, Toshio Kuratomi (a.badger at gmail.com) wrote:
> 
>> On Apr 28, 2014 5:01 PM, "Daniel J Walsh" <dwalsh at redhat.com> wrote:
>>>
>>> The problem  is lots of services require systemd because they ship a
>>> unit file and want systemctl reload to happen.
>>
>> Would removing the requires on systemd and doing:
>>
>> /usr/bin/systemctl reload ||:
>>
>> Work for these cases?
> 
> Note that all the invocations of systemctl done by the systemd rpm
> macros are suffixed with ">/dev/null 2>&1 || :", as it is customary for
> rpm scriplets. Hence there's little to do really, except dropping the
> deps, and leaving everything else in place...

I suspect just dropping the deps would break initial installations, e.g.
anaconda / livecd-creator. RPM uses the deps to order the transaction so
that systemd gets installed first, and the packages that ship service
files get installed later. Without the deps, rpm wouldn't know the order
in which it has to run the transaction.

For example, when a package bar has a postinstall script that does:

    systemctl enable bar.service >/dev/null 2>&1 || :

... but if systemctl gets installed _after_ foo in the same transaction,
then the systemctl command never runs and service stays disabled.


-- 
Kalev

P.S. Yes, this should really be 'systemctl preset', but I felt using
'systemctl enable' made the example easier to understand :)


More information about the devel mailing list