From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 22 Dec 2021 12:01:06 +0100 From: Alexey Gladkov To: ALT Linux Team development discussions Message-ID: <20211222110106.lefwkop4rpeimr7q@example.org> References: <20211217120716.5hphkzb2pe5mxqvj@example.org> <1929eb1e-3c96-6453-5e9c-decf082ab5d6@ya.ru> <2368b968-6f1d-82a3-24c9-6f19c587975a@gmail.com> <1aa23f9d-04ad-c558-d9e4-a294e737fd31@ya.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1aa23f9d-04ad-c558-d9e4-a294e737fd31@ya.ru> Subject: Re: [devel] I: sysvinit vs systemd X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Dec 2021 11:01:08 -0000 Archived-At: List-Archive: List-Post: On Wed, Dec 22, 2021 at 11:33:12AM +0700, Антон Мидюков wrote: > 22.12.2021 03:06, Leonid Krivoshein пишет: > > > > 21.12.2021 22:32, Антон Мидюков пишет: > >> 17.12.2021 19:07, Alexey Gladkov пишет: > >>> Привет! > >>> > >>> В виду нарастающей несовместимости между системами с sysvinit и systemd. > >>> В sysvinit была добавлена явный конфликт на systemd. Технически они не > >>> конфликтуют, но без него в системы с sysvinit иногда попадает systemd и > >>> это приводит к серьёзным проблемам. > >> Проблема скорее в том, что в hasher попадает sysvinit. А попадает он туда > >> через треугольник systemd-utils-standalone - startup - systemd-sysctl-common. > >> Эти пакеты вытягивают друг друга и sysvinit. > >> startup тянется другими пакетами из-за конфигов, которые в нём. > >> Можете попробовать установить в только что инициализированный hasher. > >> А вот как они вытягивают sysvinit, я что-то не пойму. Наверное, это startup. > > > > От startup раньше зависел interactive-basesystem, теперь нет. Но раз его убрали из зависимостей, кому-то это могло что-то поломать, так что с марта 2021 startup могли добавить куда-то ещё. > > > > А можешь показать cat /etc/apt/pkgpriorities ? Этот файл ведь не установщик может создавать, его могли бы определять конфликтующие иниты, каждый по-своему. Потому что многие инитные зависимости виртуальные, и при обновлении начинается качание весов. Можно оставить его в apt-conf-branch для всех решений, а для пользователей sysvinit переместить в инитный пакет. > > > > Да уже разобрался. startup через зависимость /sbin/halt вытягивает либо sysvinit, либо systemd-sysvinit. > Исправив startup, починим сборку пакетов. Насколько я понимаю startup не нужен на системах с systemd. Об этом уже писал shaba@. Пакет startup нужен только на системах с sysvinit. Конфликт в sysvinit выявил скрытую проблему: https://git.altlinux.org/tasks/292438/logs/events.1.1.log сейчас у нас systemd сам вытягивает startup Building Dependency Tree... MI2a: mark libnss-mymachines MI2a: target systemd-container MI2a: mark systemd-container MI2a: target systemd MI2a: mark systemd MI2a: target /etc/modules MI2a: mark startup ^^^^^^^^^^^^^^ MI2a: target libnss-systemd MI2a: mark libnss-systemd MI2a: target systemd-boot-efi MI2a: mark systemd-boot-efi MI2a: target systemd-sysctl-common MI2a: mark systemd-sysctl-common $ rpmquery -pR files/x86_64/RPMS/systemd-249.7-alt5.x86_64.rpm | grep /etc/modules /etc/modules $ apt-cache showpkg /etc/modules Package: /etc/modules Versions: Reverse Depends: systemd,/etc/modules Dependencies: Provides: Reverse Provides: startup 0.9.9.13-alt1:sisyphus+284270.100.1.1@1630416269 В свою очередь startup хочет утилиты halt, initlog, reboot, shutdown, telinit. Их предоставляет либо sysvinit, либо systemd-sysvinit. $ rpm -e --test systemd-sysvinit error: Failed dependencies: /sbin/halt is needed by (installed) startup-0.9.9.13-alt1.noarch /sbin/reboot is needed by (installed) startup-0.9.9.13-alt1.noarch /sbin/shutdown is needed by (installed) startup-0.9.9.13-alt1.noarch /sbin/telinit is needed by (installed) startup-0.9.9.13-alt1.noarch С одной стороны если systemd втащит внутрь systemd-sysvinit, то это спрячет проблему и sysvinit перестанет появляться в окружении с systemd. Но это плохое решение. Другим решением будет доделать перенос легаси конфигов в отдельные пакеты. Дима предложил порядок действий: + В startup ссылки /etc/modules и /etc/sysctl.conf заменяются на зависимости. + Из systemd ссылка /etc/modules-load.d/modules.conf заменяется на зависимость. + В systemd-sysctl-common ссылка /etc/sysctl.d/99-sysctl.conf заменяется на файл и добавляется ссылка /etc/sysctl.conf. + В новом systemd-modules-common добавляется файл /etc/modules-load.d/modules.conf и ссылка /etc/modules на него. + В обоих -common добавляются %pre, которые перемещают заменяемые файлы на новые места. После этого startup перестанет появляться на системах с systemd и вытягивать ненужные зависимости. -- Rgrds, legion