Периодически люди страдают, что в их системы с sysvinit (через используемые в startup программы) приезжает целый libsystemd-shared со всеми его зависимостями. Есть два патча: http://git.altlinux.org/people/glebfm/packages/..git?p=systemd.git;h=refs/heads/patch-link-some-progs-with-libsystemd-statically Этот патч сделает эти три программы гораздо больше в смысле размера, но их (по идее) можно будет использовать и с systemd и с sysvinit. http://git.altlinux.org/people/glebfm/packages/..git?p=systemd.git;h=refs/heads/patch-add-standalone-systemd-sysctl-and-systemd-modules-load А этот патч (применяется с -Dstandalone-binaries=true) позволяет сделать отдельные версии этих трёх программ (с суффиксом .standalone) чтобы их можно было запаковать отдельно.
(Ответ для Gleb F-Malinovskiy на комментарий #0) > Есть два патча: У обоих идея одна и та же -- собрать эти программы с частями systemd статически, а с остальными библиотеками, как положено, динамически.
Т.е. нужны отдельные: - systemd-tmpfiles.standalone - systemd-sysctl.standalone - systemd-modules-load.standalone Я правильно понял? Первый патч я немного переделаю, по аналогии с link-systemctl-shared. Только у меня сомнение, что первый патч вообще нужен, если для sysvinit будут подготовлены отдельные *.standalone. systemctl статический нужен потому, что вовремя обновления в системе на некоторое время могут оказаться libsystemd и systemd разных версий, а %post скрипты дергают systemctl, который в этот момент может оказаться нерабочим(если будет shared). А вот systemd-sysctl, systemd-modules-load, systemd-tmpfiles вроде дергают из %post, хотя могут конечно. Особенно systemd-tmpfiles. PS: еще надо filetrigger переписать, что бы на sysvinit использовать *.standalone утилиты.
(Ответ для Alexey Shabalin на комментарий #2) > Т.е. нужны отдельные: > - systemd-tmpfiles.standalone > - systemd-sysctl.standalone > - systemd-modules-load.standalone > Я правильно понял? > > Первый патч я немного переделаю, по аналогии с link-systemctl-shared. > Только у меня сомнение, что первый патч вообще нужен, если для sysvinit > будут подготовлены отдельные *.standalone. Моя мысль была в том, что эти патчи взаимоисключающие. Т.е. либо собрать все эти программы статически (и не плодить вторых экземпляров), либо собрать вторые экземпляры, а обычные программы оставить собранными с libsystemd-shared .
В сизиф ушла новая сборка systemd-247.2-alt1, где добавлены отдельные пакеты: - systemd-modules-load-standalone - systemd-sysctl-standalone - systemd-sysusers-standalone - systemd-tmpfiles-standalone Если вам будет удобнее все эти команды в одном пакете, дайте знать, переделаю. Предлагаю sysvinit адаптировать для их использования. Тут надо подумать как лучше сделать, но думаю пользователи и разработчики sysvinit лучше справятся. 1) в fedora в rpm есть интересная фишка - RemovePathPostfixes: .standalone Если есть возможность добавить её в наш rpm, то я адаптирую standalone пакеты под неё. 2) Либо в rc.sysinit на использовать *.standalone бинарники 3) Либо нужны симлинки (типа systemd-sysctl -> systemd-sysctl.standalone), тогда rc.sysinit можно не трогать. 4) так же не забудьте про filetrigger, которые сейчас есть в systemd-utils 5) после перевода sysvinit на использование standalone пакетов, я планирую смержить systemd-utils с основным пакетом. В отдельном виде он для sysvinit больше не нужет. PS: это уже другая тема, её наверно стоит обсудить в рассылке. Идея в том, что бы перевести создание системных пользователей в rpm пакетах на использование systemd-sysuser.
# rpm --lastchange startup * Ср янв 27 2021 Alexey Gladkov <legion@altlinux.ru> 0.9.9.11-alt1 - Use standalone versions of systemd utilities.