8.72. Systemd-251

Пакет systemd содержит программы для управления загрузкой, работой и выключением системы.

Приблизительное время сборки: 2.3 SBU
Требуемое дисковое пространство: 251 MB

8.72.1. Установка systemd

Во-первых, исправьте проблему, появившуюся в glibc-2.36.

patch -Np1 -i ../systemd-251-glibc_2.36_fix-1.patch

Удалите две ненужные группы render и sgx, из правил udev по умолчанию:

sed -i -e 's/GROUP="render"/GROUP="video"/' \
       -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in

Подготовьте systemd к компиляции:

mkdir -p build
cd       build

meson --prefix=/usr                 \
      --buildtype=release           \
      -Ddefault-dnssec=no           \
      -Dfirstboot=false             \
      -Dinstall-tests=false         \
      -Dldconfig=false              \
      -Dsysusers=false              \
      -Drpmmacrosdir=no             \
      -Dhomed=false                 \
      -Duserdb=false                \
      -Dman=false                   \
      -Dmode=release                \
      -Dpamconfdir=no               \
      -Ddocdir=/usr/share/doc/systemd-251 \
      ..

Значение параметров meson:

--buildtype=release

Этот параметр переопределяет тип сборки по умолчанию («debug»), который будет создавать неоптимизированные двоичные файлы.

-Ddefault-dnssec=no

Этот параметр отключает экспериментальную поддержку DNSSEC.

-Dfirstboot=false

Этот параметр предотвращает установку служб systemd, отвечающих за настройку системы при первом запуске. Они бесполезны для LFS, потому что все делается вручную.

-Dinstall-tests=false

Этот параметр предотвращает установку скомпилированных тестов.

-Dldconfig=false

Этот параметр предотвращает установку юнита systemd, который запускает ldconfig при каждой загрузке системы. Это бесполезно для собранных из исходников дистрибутивов таких как LFS и замедляет загрузку. Удалите параметр, если такая функция все же нужна.

-Dsysusers=false

Этот параметр предотвращает установку служб systemd отвечающих за настройку файлов /etc/group и /etc/passwd. Оба файла были созданы предыдущей главе. Этот демон бесполезен в системе LFS, поскольку учетные записи пользователей создаются вручную.

-Drpmmacrosdir=no

Этот параметр отключает установку макросов RPM для использования с systemd, поскольку LFS не поддерживает RPM.

-D{userdb,homed}=false

Удаляет две службы, чьи зависимости не удовлетворяет LFS.

-Dman=false

Предотвращает генерацию справочных страниц, чтобы избежать дополнительных зависимостей. Позже мы установим предварительно сгенерированные справочные страницы для systemd из архива.

-Dmode=release

Отключает некоторые функции, которые разработчики считает экспериментальными.

-Dpamconfdir=no

Предотвращает установку файла конфигурации PAM, который не работает в LFS.

Скомпилируйте пакет:

ninja

Установите пакет:

ninja install

Установите справочные страницы:

tar -xf ../../systemd-man-pages-251.tar.xz --strip-components=1 -C /usr/share/man

Создайте файл /etc/machine-id необходимый systemd-journald:

systemd-machine-id-setup

Настройте базовую целевую структуру:

systemctl preset-all

Отключите службу обновления бинарных дистрибутивов. Она бесполезна для базовой системы Linux, собранной из исходного кода, и сообщит об ошибке, если она включена, но не настроена:

systemctl disable systemd-sysupdate

8.72.2. Содержимое пакета systemd

Установленные программы: busctl, coredumpctl, halt (символическая ссылка на systemctl), hostnamectl, init, journalctl, kernel-install, localectl, loginctl, machinectl, networkctl, oomctl, portablectl, poweroff (символическая ссылка на systemctl), reboot (символическая ссылка на systemctl), resolvconf (символическая ссылка на resolvectl), resolvectl, runlevel (символическая ссылка на systemctl), shutdown (символическая ссылка на systemctl), systemctl, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-creds, systemd-delta, systemd-detect-virt, systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128, systemd-inhibit, systemd-machine-id-setup, systemd-mount, systemd-notify, systemd-nspawn, systemd-path, systemd-repart, systemd-resolve (символическая ссылка на resolvectl), systemd-run, systemd-socket-activate, systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, systemd-umount (символическая ссылка на systemd-mount), telinit (символическая ссылка на systemctl), timedatectl, и udevadm
Установленные библиотеки: libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-251.so (в /usr/lib/systemd), и 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, /usr/lib/systemd, /usr/lib/udev, /usr/include/systemd, /usr/lib/binfmt.d, /usr/lib/environment.d, /usr/lib/kernel, /usr/lib/modules-load.d, /usr/lib/sysctl.d, /usr/lib/systemd, /usr/lib/tmpfiles.d, /usr/share/doc/systemd-251, /usr/share/factory, /usr/share/systemd, /var/lib/systemd, и /var/log/journal

Краткое описание

busctl

Используется для самоанализа и мониторинга шины D-Bus

coredumpctl

Используется для извлечения дампов памяти из журнала systemd

halt

Обычно вызывает shutdown с параметром -h, за исключением случаев, когда уровень запуска уже равен 0, тогда он посылает ядру сигнал на останоку системы; Кроме этого отмечает в файле /var/log/wtmp, что система отключается

hostnamectl

Используется для чтения и изменения имени хоста и связанных с ним настроек

init

Первый процесс, запускаемый ядром после инициализации оборудования, который продолжает процесс загрузки и запускает все процессы в соответствии с их настройками. В данном случае, он запускает systemd

journalctl

Используется для чтения содержимого журнала systemd

kernel-install

Используется для добавления и удаления образов ядра и initramfs в /boot. В LFS это делается вручную

localectl

Используется для чтения и изменения настроек локали и раскладки клавиатуры

loginctl

Используется для самоанализа и контроля состояния Login-менеджера systemd

machinectl

Используется для самоанализа и контроля состояния диспетчера виртуальной машины и регистрации контейнеров systemd

networkctl

Используется для самоанализа и настройки состояния сетевых соединений настроенных с помощью systemd-networkd

oomctl

Управляет демоном systemd, отвечающим за нехватку памяти (OOM)

portablectl

Используется для подключения или отсоединения переносимых служб от локальной системы

poweroff

Дает команду ядру остановить работу системы и выключить компьютер (смотрите halt)

reboot

Дает указание ядру перезагрузить систему (смотрите halt)

resolvconf

Регистрирует DNS сервер и конфигурацию домена с помощью systemd-resolved

resolvectl

Отправляет управляющие команды диспетчеру разрешения сетевых имен или разрешает доменные имена, адреса IPv4 и IPv6, записи DNS и службы

runlevel

Возвращет предыдущий и текущий уровни запуска в соответсвии с данными из /run/utmp

shutdown

Отключает систему безопасным образом, отправляя сигналы всем процессам и уведомляя всех вошедших в систему пользователей

systemctl

Используется для самоанализа и контроля состояния системы и управления службами

systemd-analyze

Используется для определения производительности запуска системы, а также для выявления проблемных модулей systemd

systemd-ask-password

Используется для запроса системного пароля или парольной фразы от пользователя с помощью вопросительного сообщения, указанного в командной строке

systemd-cat

Используется для соединения выходных данных STDOUT и STDERR процесса с журналом systemd

systemd-cgls

Рекурсивно отображает содержимое выбранной иерархии групп управления Linux(cgroups) в виде дерева

systemd-cgtop

Отображает группы управления упорядоченные по загрузке процессора, памяти и дискового ввода-вывода

systemd-creds

Отображает и обрабатывает учетные данные

systemd-delta

Используется для идентификации и сравнения конфигурационных файлов в /etc, которые переопределяют аналоги по умолчанию из /usr

systemd-detect-virt

Определяет, работает ли система в виртуальном окружении, и соответствующим образом настраивает udev

systemd-dissect

Используется для проверки образов дисков операционной системы

systemd-escape

Используется для экранирования строк для включения их в имена юнитов systemd

systemd-hwdb

Используется для управления базой данных оборудования (hwdb)

systemd-id128

Генерирует и выводит строки id128

systemd-inhibit

Используется для выполнения программы с включенной блокировкой выключения, режима ожидания или бездействия, предотвращающей выполнение таких действий, как выключение системы, до завершения процесса

systemd-machine-id-setup

Используется инструментами установщика для инициализации идентификатора машины, хранящегося в /etc/machine-id, во время установки со случайно сгенерированным идентификатором

systemd-mount

Используется для временного или автоматического монтирования дисков

systemd-notify

Используется скриптами служб для информирования системы об изменении статуса

systemd-nspawn

Используется для запуска команд или ОС в легковесном контейнере пространства имен

systemd-path

Используется для чтения системных и пользовательских путей

systemd-repart

Используется для увеличения и добавления разделов в таблицу разделов, когда systemd используется в образе операционной системы (например, в контейнере).

systemd-resolve

Используется для разрешения доменных имен, адресов IPV4 и IPv6, ресурсных записей DNS и служб

systemd-run

Используется для создания и запуска временного юнита .service или .scope, а также запуска в нем указанной команды. Это полезно для проверки юнитов systemd.

systemd-socket-activate

Используется для прослушивания сокетов и запуска процесса при успешном подключении к сокету

systemd-sysext

Активирует образы системных расширений

systemd-tmpfiles

Создает, удаляет и очищает нестабильные и временные файлы и каталоги на основе файла конфигурации и расположения, указанного в tmpfiles.d

systemd-umount

Размонтирует точки монтирования

systemd-tty-ask-password-agent

Используется для составления списка и/или обработки очереди запросов пароля

telinit

Сообщает init, на какой уровень выполнения следует перейти

timedatectl

Используется для чтения и изменения системного времени и сопутствующих настроек

udevadm

Универсальный инструмент администрирования udev, который управляет демоном udevd, предоставляет информацию из базы данных оборудования Udev, отслеживает uevents, ожидает завершения uevents, тестирует конфигурацию udev и запускает uevents для данного устройства

libsystemd

Основная библиотека systemd

libudev

Библиотека доступа Udev к информации об устройствах