Lx4U-book/docs/build-system/systemd.md
2021-05-22 17:32:10 +03:00

3.2 KiB
Raw Blame History

Подготовка

Примените патч, чтобы исправить ошибки при сборке.

patch -Np1 -i ../systemd-248-upstream_fixes-1.patch

Удалите ненужную группу render из правил udev:

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

Настройка

mkdir -p build
cd       build

LANG=en_US.UTF-8                    \
meson --prefix=/usr                 \
      --sysconfdir=/etc             \
      --localstatedir=/var          \
      -Dblkid=true                  \
      -Dbuildtype=release           \
      -Ddefault-dnssec=no           \
      -Dfirstboot=false             \
      -Dinstall-tests=false         \
      -Dldconfig=false              \
      -Dsysusers=false              \
      -Db_lto=false                 \
      -Drpmmacrosdir=no             \
      -Dhomed=false                 \
      -Duserdb=false                \
      -Dman=false                   \
      -Dmode=release                \
      -Dtests=false
      ..

Сборка

LANG=en_US.UTF-8 ninja

Установка

LANG=en_US.UTF-8 ninja install

Удалите ненужный каталог:

rm -rf /usr/lib/pam.d

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

systemd-machine-id-setup

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

systemctl preset-all

Отключите службу, которая, как известно, вызывает проблемы с системами, использующими конфигурацию сети, отличную от той, которая предоставляется systemd-networkd:

systemctl disable systemd-time-wait-sync.service

Для multilib

Очистка

rm -rf ./*

Настройка

mkdir -p build
cd       build

LANG=en_US.UTF-8  CC="gcc -m32" CXX="g++ -m32"     \
meson --prefix=/usr                 \
      --sysconfdir=/etc             \
      --localstatedir=/var          \
      --libdir=/usr/lib32           \
      -Dblkid=true                  \
      -Dbuildtype=release           \
      -Ddefault-dnssec=no           \
      -Dfirstboot=false             \
      -Dinstall-tests=false         \
      -Dldconfig=false              \
      -Dsysusers=false              \
      -Db_lto=false                 \
      -Drpmmacrosdir=no             \
      -Dhomed=false                 \
      -Duserdb=false                \
      -Dman=false                   \
      -Dmode=release                \
      -Dtests=false
      ..

Сборка

ninja

Установка

DESTDIR=$PWD/DESTDIR ninja install
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR