%general-entities; ]> Systemd-&systemd-version; Systemd <para>The systemd package is a system and service manager for Linux operating systems.</para> </sect2> <sect2 role="installation"> <title>Installation of Systemd Systemd 211 merged several libraries into libsystemd, but some packages that use systemd still expect those separate libraries. Apply a patch to allow backwards compatibility with these packages by installing Pkg-config files for the old libraries: patch -Np1 -i ../&systemd-compat-patch; Prevent the Makefile from trying to run setcap on systemd-detect-virt, which will fail if the kernel or file system does not support extended capabilities: sed -i '/virt-install-hook /d' Makefile.in The timesyncd.conf file contains a reference to a non-existent timesyncd.conf(5) man page. Remove that reference to avoid possible confusion: sed -i '/timesyncd.conf/d' src/timesync/timesyncd.conf.in Prepare systemd for compilation: ./configure --prefix=/usr \ --sysconfdir=/etc --localstatedir=/var \ --libexecdir=/usr/lib --docdir=/usr/share/doc/systemd-&systemd-version; \ --with-rootprefix="" --with-rootlibdir=/lib \ --enable-split-usr --disable-gudev --with-kbd-loadkeys=/bin/loadkeys \ --with-kbd-setfont=/bin/setfont --with-dbuspolicydir=/etc/dbus-1/system.d \ --with-dbusinterfacedir=/usr/share/dbus-1/interfaces \ --with-dbussessionservicedir=/usr/share/dbus-1/services \ --with-dbussystemservicedir=/usr/share/dbus-1/system-services The meaning of the configure options: --with-root* These switches ensure that core programs and shared libraries are installed in the subdirectories of the root partition. --enable-split-usr This switch ensures that systemd will work on systems where /bin, /lib and /sbin directories are not symlinks to their /usr counterparts. --disable-gudev This switch prevents systemd from building libgudev as it requires Glib, which is not installed in CLFS. --with-dbus* These switches ensure that D-Bus configuration files get installed to the correct locations. Compile the package: make Prevent a broken test case from running: sed -e "s:test/udev-test.pl::g" \ -e "s:test-bus-cleanup\$(EXEEXT) ::g" \ -e "s:test-bus-gvariant\$(EXEEXT) ::g" \ -i Makefile To test the results, issue: make check Install the package: make install Install documentation files that are not installed by default: install -v -m644 man/*.html /usr/share/doc/systemd-&systemd-version; Move NSS myhostname library to /lib : mv -v /usr/lib/libnss_myhostname.so.2 /lib Remove an unnecessary directory: rm -rfv /usr/lib/rpm Create symlinks for backwards-compatibility with Sysvinit: for tool in runlevel reboot shutdown poweroff halt telinit; do ln -sfv ../bin/systemctl /sbin/$tool done ln -sfv ../lib/systemd/systemd /sbin/init Modify a configuration file which references a group that doesn't exist: sed -i "s@root lock@root root@g" /usr/lib/tmpfiles.d/legacy.conf Configuring Systemd systemd configuring /etc/os-release Create /etc/machine-id which is needed by Journald: systemd-machine-id-setup Create a file to identify the operating system. systemd will use this file on boot to put information on the screen. cat > /etc/os-release << "EOF" # Begin /etc/os-release NAME=Cross-LFS ID=clfs PRETTY_NAME=Cross Linux From Scratch ANSI_COLOR=0;33 VERSION=&version; VERSION_ID=&versionid; # End /etc/os-release EOF Contents of Systemd Installed programs Installed libraries Installed directories bootctl, busctl, halt (link to systemctl), hostnamectl, init (link to systemd), journalctl, kernel-install, localectl, loginctl, machinectl, poweroff (link to systemctl), reboot (link to systemctl), runlevel (link to systemctl), shutdown (link to systemctl), systemctl, system-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-coredumpctl, systemd-delta, systemd-detect-virt, systemd-inhibit, systemd-machine-id-setup, systemd-notify, systemd-nspawn, systemd-run, systemd-stdio-bridge (link to systemd-bus-proxyd), systemd-tmpfiles, systemd-tty-ask-password-agent, telinit (link to systemctl), timedatectl, udevadm libnss_myhostname.so, libsystemd.so, libudev.so /etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d, /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev, /etc/xdg/systemd, /lib/systemd, /lib/udev, /usr/include/systemd, /usr/lib/binfmt.d, /usr/lib/kernel, /usr/lib/modules-load.d, /usr/lib/sysctl.d, /usr/lib/systemd, /usr/share/doc-systemd-&systemd-version;, /usr/share/systemd, /usr/share/zsh, /var/lib/systemd Short Descriptions bootctl Controls the firmware and boot manager settings bootctl busctl Introspects and monitors the D-Bus bus busctl halt Halts, powers off, or reboots the machine halt hostnamectl Controls the system hostname hostnamectl init systemd system and service manager init journalctl Queries the systemd journal journalctl kernel-install Adds and removes kernel and initramfs images to and from /boot kernel-install localectl Controls the system locale and keyboard layout settings localectl loginctl Controls the systemd login manager loginctl machinectl Controls the systemd machine manager machinectl poweroff Halts, powers off, or reboots the machine poweroff reboot Halts, powers off, or reboots the machine reboot runlevel Prints previous and current SysV runlevel runlevel shutdown Halts, powers off, or reboots the machine shutdown systemctl Control the systemd system and service manager systemctl systemd System and service manager for Linux systemd systemd-analyze Analyzes system boot-up permformance systemd-analyze systemd-ask-password Queries the user for a system passphrase, via the TTY or an UI agent. systemd-ask-password systemd-cat Connects a pipeline or program's output with the journal systemd-cat systemd-cgls Recursively shows control group contents systemd-cgls systemd-notify Notify init system about start-up completion and other daemon status changes systemd-notify systemd-tty-ask-password-agent Process system password requests systemd-tty-ask-password-agent telinit Tells init which run-level to change to telinit pam_systemd Register user sessions in the systemd control group hierarchy pam_systemd /lib/systemd Location of system units and configurations /lib/systemd /etc/systemd Location of user units and configurations /etc/systemd /etc/tmpfiles.d Configuration for creation, deletion and cleaning of temporary and volatile files /etc/tmpfiles.d /usr/share/systemd Location of session unit files /usr/share/systemd