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:
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.
The package that makes systemd PID1. If you don't want to use
systemd, deinstall THIS package.
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).
systemd utility functions for use in software interfacing with
systemd. Does not require systemd to be PID1.
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:
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