Systemd-231
      
      
        
          Introduction to systemd
        
        
          While systemd was installed when
          building LFS, there are many features provided by the package that
          were not included in the initial installation because Linux-PAM was not yet installed. The
          systemd package needs to be
          rebuilt to provide a working systemd-logind service, which
          provides many additional features for dependent packages.
        
        
          This package is known to build and work properly using an LFS-7.10
          platform.
        
        
          Package Information
        
        
        
          systemd Dependencies
        
        
          Required
        
        
          Linux-PAM-1.3.0
        
        
          Recommended Runtime Dependency
        
        
          Polkit-0.113
        
        
          Optional
        
        
          Certificate Authority
          Certificates, cURL-7.50.1, elfutils-0.167,
          GnuTLS-3.5.3, Iptables-1.6.0, libgcrypt-1.7.3,
          libidn-1.33, libxkbcommon-0.6.1, Python-2.7.12 or Python-3.5.2,
          qemu-2.6.1, Valgrind-3.11.0, zsh-5.2 (for the zsh
          completions), cryptsetup,
          gnu-efi, kexec-tools,
          libmicrohttpd,
          libseccomp,
          lxml (Python Module),
          lz4,
          qrencode, quota-tools
          and Sphinx
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            In order to build the systemd
            Python module, the lxml package needs to be installed for the
            corresponding Python version (2
            or 3). Note that configure defaults to
            Python 2. In order to build the
            module for Python 3, make sure
            you pass the PYTHON=python3
            environment variable to the configure command below.
          
         
        
          Optional (to rebuild the manual pages)
        
        
          docbook-xml-4.5, docbook-xsl-1.79.1 and libxslt-1.1.29
        
        
          User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/systemd
        
       
      
        
          Installation of systemd
        
        
          Disable two tests that always fail:
        
        
sed -e 's:test/udev-test.pl ::g'  \
    -e 's:test-copy$(EXEEXT) ::g' \
    -i Makefile.in
        
          Rebuild systemd by running the
          following commands:
        
        
cc_cv_CFLAGS__flto=no               \
XSLTPROC="/usr/bin/xsltproc"         \
./configure --prefix=/usr            \
            --sysconfdir=/etc        \
            --localstatedir=/var     \
            --with-rootprefix=       \
            --with-rootlibdir=/lib   \
            --enable-split-usr       \
            --disable-firstboot      \
            --disable-ldconfig       \
            --disable-sysusers       \
            --without-python         \
            --with-default-dnssec=no \
            --docdir=/usr/share/doc/systemd-231 &&
make
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            For the best results, make sure you run the testsuite from a
            system that is booted by the same systemd version you are rebuilding.
          
         
        
          To test the results, issue: make -k
          check.
        
        
          ![[Warning]](../images/warning.png) 
          
            Warning
          
          
            Installing the package will overwrite all files installed by
            systemd in LFS. It is critical
            that nothing uses either systemd
            or Udev libraries during the
            installation. The best way to ensure that these libraries are not
            being used is to run the installation in rescue mode. To switch
            to rescue mode, run the following command as the root user (from a TTY):
          
          
systemctl start rescue.target
         
        
          Now, as the root user:
        
        
make install
        
          Move the NSS libraries to /lib by
          running the following command as the root user:
        
        
mv -v /usr/lib/libnss_{myhostname,mymachines,resolve}.so.2 /lib
        
          Remove an unnecessary directory by running the following command as
          the root user:
        
        
rm -rfv /usr/lib/rpm
       
      
        
          Configuring systemd
        
        
          The /etc/pam.d/system-sesion file
          needs to be modified and a new file needs to be created in order
          for systemd-logind to
          work correctly. Run the following commands as the root user:
        
        
cat >> /etc/pam.d/system-session << "EOF"
# Begin Systemd addition
    
session   required    pam_loginuid.so
session   optional    pam_systemd.so
# End Systemd addition
EOF
cat > /etc/pam.d/systemd-user << "EOF"
# Begin /etc/pam.d/systemd-user
account  required pam_access.so
account  include  system-account
session  required pam_env.so
session  required pam_limits.so
session  include  system-session
auth     required pam_deny.so
password required pam_deny.so
# End /etc/pam.d/systemd-user
EOF
        
          At this point, you should reload the systemd daemon, and reenter
          multi-user mode with the following commands (as the root user):
        
        
systemctl daemon-reload
systemctl start multi-user.target
        
          ![[Warning]](../images/warning.png) 
          
            Warning
          
          
            If upgrading from a previous version of systemd and an initrd is
            used for system boot, you should generate a new initrd before
            rebooting the system.
          
         
       
      
        
          Contents
        
        
          A list of the installed files, along with their short descriptions
          can be found at 
          ../../../../lfs/view/7.10/chapter06/systemd.html#contents-systemd.
        
        
          Listed below are the newly installed libraries and directories
          along with short descriptions.
        
        
          
            
              Installed Programs:
              None
            
            
              Installed Libraries:
              pam_systemd.so (in /lib/security)
            
            
              Installed Directories:
              None
            
           
         
        
          
            Short Descriptions
          
          
            
            
              
                | 
                    pam_systemd.so | 
                    is a PAM module used to register user sessions with the
                    systemd login manager,
                    systemd-logind.
                   | 
            
          
         
       
      
        Last updated on 2016-08-28 02:28:15 -0700