[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Re: Perfect Jessie is something like this...

> OMFG! Just did an upgrade and guess what?! A "new" packaged appeared,
> called: "libsystemd0"...
> [...]
> I can not believe my eyes... BSD stuff depending on systemd!

The bsdutils package is actually not directly from BSD, it's built as
part of util-linux, and provides utilities not specified in POSIX that
are traditionally available on BSD systems. For example, this includes
'wall' and 'renice'. (See dpkg -L for a complete list.)

But it also includes the utility 'logger'. In recent util-linux
versions, 'logger' has gained a --journald flag that allows one to log
to systemd's journal from the command line. This is the reason for the
dependency on libsystemd0, so that 'logger' may write to the journal if
requested. (By default, it will of course still log to syslog.)

libsystemd0 is just 140 KiB and contains utility functions that might be
useful for programs interfacing with systemd. It is absolutely harmless
on systems with another init system, it will just tell the programs that
systemd is not running.

logger itself works just fine without systemd being PID1, just the
--journald option will not work then.

For reference, to give a short overview of Debian's systemd packaging:

 - systemd
   The main systemd binaries, including systemd-logind. This does
   NOT make systemd PID1 by itself, and having this installed has no
   direct side-effects other than using up some disk space.

 - systemd-sysv
   The package that makes systemd PID1. If you don't want to use
   systemd, deinstall THIS package.

 - libpam-systemd
   A PAM module that handles session-related stuff for GUI logins,
   such as creating /run/user/$UID with proper permissions (and setting
   XDG_RUNTIME_DIR accordingly), registering the session with logind so
   that hardware access from GUIs works properly. Requires working
   logind, i.e. pulls in systemd-sysv or systemd-shim (currently
   prefers systemd-sysv, but that might change, see current TC
   discussion on this topic).

 - libsystemd0
   systemd utility functions for use in software interfacing with
   systemd. Does not require systemd to be PID1.

 - libsystemd-dev
   Header files for libsystemd0

 - libsystemd-login0, libsystemd-daemon0, libsystemd-journal0,
   libsystemd-id128-0, corresponding -dev packages
   Separate packages for different functions that are now in
   libsystemd0, hence deprecated. These packages are there for
   compatibility reasons, will probably disappear at some point.

 - udev, libudev1, libudev-dev, libgudev-1.0-0, gir1.2-gudev-1.0,
   udev device manager, basic part of any Debian installation on a
   physical system, manages device nodes in /dev. Built from the
   systemd package, but does not require systemd to be PID1.

Not from the systemd package but related:

 - systemd-shim
   Provides systemd's cgroup DBus APIs when systemd is NOT PID1. Uses
   cgmanager internally. Is required if you don't want to use systemd
   as PID1 but need e.g. logind.

   Note that this is NOT part of systemd, this is developed by other
   people that want to make logind work without systemd being PID1.

So basically, if you don't want systemd:

 - you will not get around libsystemd0, but that is really, really
   harmless (you also don't get grid of libselinux on jessie, but I
   don't see anybody complaining there, because its functionality is
   disabled by default, same with libsystemd0 if systemd is not PID1)

 - you will also not really get around udev on Debian, which is also
   built from the systemd source package (because both are developed in
   the same source tree), but that's independent of systemd itself

 - if you don't need logind (i.e. no desktop environment that requires
   it), then you will need nothing else

 - if you need logind (i.e. using a desktop environment that requires
   it), then you will also need to have the systemd package installed
   (see above: does NOT make systemd PID1, but logind is contained in
   there), and then you'll also want the systemd-shim if you don't want
   systemd to be PID1

tl;dr: You will need the following packages:
 - "always": libsystemd0, udev, libudev1
 - logind, PID1 != systemd: install systemd and systemd-shim
 - PID1 == systemd: install systemd-sysv, optionally remove systemd-shim


Reply to: