From d8c9bd7cb3d22bc5d73317301c5fb9f20937c52b Mon Sep 17 00:00:00 2001
From: Poltern <2363951+Poltern@users.noreply.github.com>
Date: Sat, 2 Sep 2023 02:00:11 +0500
Subject: [PATCH] Translated pages from chapter 8
---
chapter08/libelf.xml | 2 +-
chapter08/stripping.xml | 2 +-
chapter08/systemd.xml | 46 +++++--
chapter08/tar.xml | 11 +-
chapter08/udev.xml | 264 +++++++++++++++++++++++++++++++++++++++
chapter08/util-linux.xml | 13 +-
chapter08/wheel.xml | 53 +-------
7 files changed, 320 insertions(+), 71 deletions(-)
create mode 100644 chapter08/udev.xml
diff --git a/chapter08/libelf.xml b/chapter08/libelf.xml
index 8873315..6d26845 100644
--- a/chapter08/libelf.xml
+++ b/chapter08/libelf.xml
@@ -14,7 +14,7 @@
&elfutils-url;
- Libelf from Elfutils-&elfutils-version;
+ Libelf из Elfutils-&elfutils-version;
Libelf
diff --git a/chapter08/stripping.xml b/chapter08/stripping.xml
index 06dfcc5..dfaa233 100644
--- a/chapter08/stripping.xml
+++ b/chapter08/stripping.xml
@@ -83,7 +83,7 @@ done
online_usrbin="bash find strip"
online_usrlib="libbfd-&binutils-version;.so
- libsframe.so.0.0.0
+ libsframe.so.&libsframe-version;
libhistory.so.&readline-soversion;
libncursesw.so.&ncurses-version;
libm.so.6
diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml
index 4a7f5c7..507a92b 100644
--- a/chapter08/systemd.xml
+++ b/chapter08/systemd.xml
@@ -39,11 +39,6 @@
Установка systemd
-
- Во-первых, исправьте проблему безопасности в systemd-coredump:
-
-patch -Np1 -i ../&systemd-upstream-patch;
-
Удалите две ненужные группы
render и
sgx, из правил udev по умолчанию:
@@ -56,7 +51,8 @@
mkdir -p build
cd build
-meson --prefix=/usr \
+meson setup \
+ --prefix=/usr \
--buildtype=release \
-Ddefault-dnssec=no \
-Dfirstboot=false \
@@ -69,6 +65,7 @@ meson --prefix=/usr \
-Dman=false \
-Dmode=release \
-Dpamconfdir=no \
+ -Ddev-kvm-mode=0660 \
-Ddocdir=/usr/share/doc/systemd-&systemd-version; \
..
@@ -139,7 +136,7 @@ meson --prefix=/usr \
-D{userdb,homed}=false
- Удаляет две службы, чьи зависимости не удовлетворяет LFS.
+ Удаляет две службы, чьи зависимости не удовлетворяют LFS.
@@ -166,6 +163,15 @@ meson --prefix=/usr \
Предотвращает установку файла конфигурации PAM, который не работает в LFS.
+
+
+ -Ddev-kvm-mode=0660
+
+ По умолчанию правило udev разрешает всем пользователям доступ к
+ /dev/kvm. Редакторы LFS считают
+ это опасным. Данная опция переопределяет разрешение по умолчанию.
+
+
Скомпилируйте пакет:
@@ -180,9 +186,11 @@ meson --prefix=/usr \
-tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz --strip-components=1 -C /usr/share/man
+tar -xf ../../systemd-man-pages-&systemd-version;.tar.xz \
+ --no-same-owner --strip-components=1 \
+ -C /usr/share/man
- Создайте файл /etc/machine-id необходимый
+ Создайте файл /etc/machine-id необходимый
systemd-journald:
systemd-machine-id-setup
@@ -220,12 +228,14 @@ meson --prefix=/usr \
busctl, coredumpctl, halt (символическая ссылка на systemctl),
hostnamectl, init, journalctl, kernel-install, localectl, loginctl,
- machinectl, networkctl, oomctl, portablectl, poweroff (символическая ссылка на
- systemctl), reboot (символическая ссылка на systemctl), resolvconf (символическая ссылка на
+ machinectl, mount.ddi (символическая ссылка на systemd-dissect), networkctl,
+ oomctl, portablectl, poweroff (символическая ссылка на
+ systemctl), reboot (символическая ссылка на systemctl), resolvconf (символическая ссылка на
resolvectl), resolvectl, runlevel (символическая ссылка на systemctl), shutdown
- (символическая ссылка на systemctl), systemctl, systemd-analyze,
+ (символическая ссылка на systemctl), systemctl, systemd-ac-power, systemd-analyze,
systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop,
- systemd-creds, systemd-delta, systemd-detect-virt,
+ systemd-confext (символическая ссылка на systemd-sysext), 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,
@@ -467,6 +477,16 @@ meson --prefix=/usr \
+
+ systemd-ac-power
+
+ Сообщает, подключена ли система к внешнему источнику питания.
+
+ systemd-ac-power
+
+
+
+
systemd-analyze
diff --git a/chapter08/tar.xml b/chapter08/tar.xml
index fd55bab..7c444ae 100644
--- a/chapter08/tar.xml
+++ b/chapter08/tar.xml
@@ -73,9 +73,16 @@
make check
+
+ Время тестирования Tar можно значительно сократить в системе с
+ несколькими ядрами. Для этого добавьте TESTSUITEFLAGS=-j<N>
+ к строке выше. Например, использование -j4 может сократить время тестирования
+ более чем на 70 процентов.
+
Известно, что один тест, capabilities: binary store/restore, завершается
- неудачей при запуске, потому что в LFS отсутствует selinux, он будет пропущен, если ядро
- хоста не поддерживает расширенные атрибуты файловой системы, используемой для сборки LFS.
+ ошибкой при запуске, потому что в LFS отсутствует selinux, он будет пропущен, если
+ ядро хоста не поддерживает расширенные атрибуты или метки безопасности файловой
+ системы, используемой для сборки LFS.
Установите пакет:
diff --git a/chapter08/udev.xml b/chapter08/udev.xml
new file mode 100644
index 0000000..49fd3f8
--- /dev/null
+++ b/chapter08/udev.xml
@@ -0,0 +1,264 @@
+
+
+ %general-entities;
+]>
+
+
+
+
+
+ udev
+ &systemd-version;
+ &systemd-url;
+
+
+ Udev из Systemd-&systemd-version;
+
+
+ Udev
+
+
+
+
+
+ Пакет Udev содержит программы для динамического создания узлов устройств.
+
+
+ &buildtime;
+ &diskspace;
+
+
+ &udev-fin-sbu;
+ &udev-fin-du;
+
+
+
+
+
+ Установка пакета Udev
+
+ Udev является частью пакета systemd-&systemd-version;. Используйте файл
+ systemd-&systemd-version;.tar.xz в качестве исходного архива.
+
+ Удалите две ненужные группы
+ render и
+ sgx, из правил udev по умолчанию:
+
+ sed -i -e 's/GROUP="render"/GROUP="video"/' \
+ -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
+
+ Удалите одно правило udev, требующее полной установки Systemd:
+
+ sed '/systemd-sysctl/s/^/#/' -i rules.d/99-systemd.rules.in
+
+ Подготовьте Udev к компиляции:
+
+mkdir -p build
+cd build
+
+meson setup \
+ --prefix=/usr \
+ --buildtype=release \
+ -Dmode=release \
+ -Ddev-kvm-mode=0660 \
+ -Dlink-udev-shared=false \
+ ..
+
+
+ Значение параметров meson:
+
+
+ --buildtype=release
+
+ Этот параметр переопределяет тип сборки по умолчанию (debug
),
+ который создает неоптимизированные двоичные файлы.
+
+
+
+
+ -Dmode=release
+
+ Отключает некоторые функции, которые разработчики считают экспериментальными.
+
+
+
+
+
+ -Ddev-kvm-mode=0660
+
+ По умолчанию правило udev разрешает всем пользователям доступ к
+ /dev/kvm. Редакторы LFS считают
+ это опасным. Данная опция переопределяет разрешение по умолчанию.
+
+
+
+
+ -Dlink-udev-shared=false
+
+ Эта опция запрещает udev связываться с внутренней общей библиотекой
+ systemd libsystemd-shared. Эта
+ библиотека предназначена для совместного использования многими компонентами
+ Systemd, и ее использование избыточно, когда установлен только udev
+
+
+
+
+ Соберите только компоненты, необходимые для udev:
+
+ ninja udevadm systemd-hwdb \
+ $(grep -o -E "^build (src/libudev|src/udev|rules.d|hwdb.d)[^:]*" \
+ build.ninja | awk '{ print $2 }') \
+ $(realpath libudev.so --relative-to .)
+
+ Удалите один файл правил udev, требующий полной установки Systemd:
+
+rm rules.d/90-vconsole.rules
+
+ Установите пакет:
+
+ install -vm755 -d {/usr/lib,/etc}/udev/{hwdb,rules}.d
+install -vm755 -d /usr/{lib,share}/pkgconfig
+install -vm755 udevadm /usr/bin/
+install -vm755 systemd-hwdb /usr/bin/udev-hwdb
+ln -svfn ../bin/udevadm /usr/sbin/udevd
+cp -av libudev.so{,*[0-9]} /usr/lib/
+install -vm644 ../src/libudev/libudev.h /usr/include/
+install -vm644 src/libudev/*.pc /usr/lib/pkgconfig/
+install -vm644 src/udev/*.pc /usr/share/pkgconfig/
+install -vm644 ../src/udev/udev.conf /etc/udev/
+install -vm644 rules.d/* ../rules.d/{*.rules,README} /usr/lib/udev/rules.d/
+install -vm644 hwdb.d/* ../hwdb.d/{*.hwdb,README} /usr/lib/udev/hwdb.d/
+install -vm755 $(find src/udev -type f | grep -F -v ".") /usr/lib/udev
+
+ Установите некоторые пользовательские правила и файлы поддержки,
+ полезные в среде LFS:
+
+tar -xvf ../../&udev-lfs-version;.tar.xz
+make -f &udev-lfs-version;/Makefile.lfs install
+
+ Установите справочные страницы:
+
+
+tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz \
+ --no-same-owner --strip-components=1 \
+ -C /usr/share/man --wildcards '*/udev*' '*/libudev*' \
+ '*/systemd-'{hwdb,udevd.service}.8
+sed 's/systemd\(\\\?-\)/udev\1/' /usr/share/man/man8/systemd-hwdb.8 \
+ > /usr/share/man/man8/udev-hwdb.8
+sed 's|lib.*udevd|sbin/udevd|' \
+ /usr/share/man/man8/systemd-udevd.service.8 \
+ > /usr/share/man/man8/udevd.8
+rm /usr/share/man/man8/systemd-*.8
+
+
+
+
+ Настройка Udev
+
+
+ Udev
+ configuring
+
+
+
+ /etc/udev/hwdb.bin
+
+
+ Информация об аппаратных устройствах хранится в каталогах
+ /etc/udev/hwdb.d и
+ /usr/lib/udev/hwdb.d.
+ Udev необходимо, чтобы эта информация была скомпилирована
+ в двоичную базу данных /etc/udev/hwdb.bin. Создайте исходную
+ базу данных:
+
+udev-hwdb update
+
+ Эту команду необходимо запускать каждый раз при обновлении информации об
+ оборудовании.
+
+
+
+
+ Содержимое пакета Udev
+
+
+ Установленные программы
+ Установленные библиотеки
+ Созданные каталоги
+
+
+ udevadm, udevd (символическая ссылка на udevadm) и udev-hwdb
+
+ libudev.so
+
+ /etc/udev и /usr/lib/udev
+
+
+
+
+ Short Descriptions
+
+
+
+ udevadm
+
+ Универсальный инструмент администрирования udev: управляет демоном
+ udevd, предоставляет информацию из базы данных Udev, отслеживает uevents,
+ ожидает завершения uevents, проверяет конфигурацию Udev и запускает
+ uevents для данного устройства
+
+ udevadm
+
+
+
+
+
+ udevd
+
+ Демон, который прослушивает uevents в сокете netlink, создает устройства
+ и запускает настроенные внешние программы в ответ на эти uevents
+
+ udevd
+
+
+
+
+
+ udev-hwdb
+
+ Обновляет или запрашивает базу данных оборудования
+
+ udev-hwdb
+
+
+
+
+
+ libudev
+
+ Библиотека для получения информации об устройствах udev
+
+ libudev
+
+
+
+
+
+ /etc/udev
+
+ Содержит файлы конфигурации Udev, разрешения для устройств и правила
+ именования устройств
+
+ /etc/udev
+
+
+
+
+
+
+
+
+
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index 4cba1b0..63f18cd 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -41,11 +41,16 @@
Установка пакета Util-linux
+ Сначала отключите проблемные тесты:
+
+ sed -i '/test_mkfds/s/^/#/' tests/helpers/Makemodule.am
+
Подготовьте Util-linux к компиляции:
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
--bindir=/usr/bin \
--libdir=/usr/lib \
+ --runstatedir=/run \
--sbindir=/usr/sbin \
--disable-chfn-chsh \
--disable-login \
@@ -63,6 +68,7 @@
./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
--bindir=/usr/bin \
--libdir=/usr/lib \
+ --runstatedir=/run \
--sbindir=/usr/sbin \
--disable-chfn-chsh \
--disable-login \
@@ -98,8 +104,11 @@
su tester -c "make -k check"
Тесты с жесткими ссылками завершатся неудачей, если в ядре хоста
- не установлена опция CONFIG_CRYPTO_USER_API_HASH. Кроме того, известно, что два подтеста из
- misc: mbsencode и один подтест из script: replay не проходят.
+ не включена опция или не включено никаких опций,
+ обеспечивающих реализацию SHA256 (например, или
+ , если процессор поддерживает инструкции SSE3).
+ Кроме того, известно, что два подтеста из misc: mbsencode и один подтест из script: replay
+ не проходят.
Установите пакет:
diff --git a/chapter08/wheel.xml b/chapter08/wheel.xml
index d2eed4a..cb8c348 100644
--- a/chapter08/wheel.xml
+++ b/chapter08/wheel.xml
@@ -42,63 +42,12 @@
Скомпилируйте Wheel с помощью следующей команды:
-PYTHONPATH=src pip3 wheel -w dist --no-build-isolation --no-deps $PWD
+pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Установите Wheel:
pip3 install --no-index --find-links=dist wheel
-
- Значение параметров конфигурации и команд pip3:
-
-
- PYTHONPATH=src
-
- Позволяет этому пакету (еще не установленному) создавать для себя архив wheel.
-
-
-
-
- wheel
-
- Эта команда создает архив wheel для этого пакета.
-
-
-
-
- -w dist
-
- Указывает pip поместить созданный архив в каталог
- dist.
-
-
-
-
- install
-
- Эта команда устанавливает пакет.
-
-
-
-
- --no-build-isolation,
- --no-deps и
- --no-index
-
- Эти параметры предотвращают получение файлов из онлайн-репозитория пакетов (PyPI).
- Если пакеты установлены в правильном порядке, то нет необходимости загружать
- какие-либо файлы; эти параметры усиливают безопасность в случае ошибки пользователя.
-
-
-
-
- --find-links dist
-
- Указывает pip искать архивы wheel в каталоге
- dist.
-
-
-