Debian возвращается к вопросу поддержки нескольких систем инициализации

19 сентября 2019 года

Сэм Хартман (Sam Hartman), лидер проекта Debian, попытался разобраться в разногласиях, связанных с поставкой пакета elogind в составе дистрибутива. В июле команда, отвечающая за подготовку релизов, заблокировала включение elogind в ветку testing, так как данный пакет конфликтует с libsystemd.

Напомним, что elogind предоставляет интерфейсы, необходимые для работы GNOME без установки systemd. Проект основан как ответвление от systemd-logind, вынесенное в отдельный пакет и избавленное от привязки к компонентам systemd. В том числе elogind предоставляет свой вариант библиотеки libelogind, которая берёт на себя ряд функций, предлагаемых в libsystemd, и заменяет при установке данную библиотеку.

В качестве причин блокировки был отмечен конфликт с пакетом systemd и опасность замены libsystemd альтернативным вариантом libelogind, полностью не совместимым с исходной библиотекой на уровне ABI. В пакете elogind помечен как конфликтующий с библиотеками systemd, но он по своей сути рассчитан на работу только без systemd и конфликт с systemd даже приносит пользу, так как не позволяет установить elogind по ошибке. С другой стороны в текущем виде попытки через APT обновить конфигурацию с systemd на вариант с sysvinit и elogind приводят к получению повреждённой системы с неработающим APT. Но даже при устранении этой недоработки переход от systemd к elogind остаётся невозможен без удаления уже установленных пользовательских окружений.

Разработчикам elogind было предложено адаптировать elogind для работы поверх штатного libpam-systemd, без использования собственной прослойки libpam-elogind. Переходу elogind на libpam-systemd мешает отсутствие поддержки концепции слайсов, но разработчики elogind не желают добиться полного соответствия API и в точности повторить все возможности systemd, так как elogind лишь предоставляет минимальную функциональность для организации входа пользователей и не ставит целью повторения всех подсистем systemd.

Разрешение описанных технических проблем должно решаться на уровне взаимодействия команды выпускающей релизы и мэйнтейнеров elogind и systemd, но лидер проекта был вынужден вмешаться так как команды не смогли договориться, совместная работа переросла в противостояние и решение проблемы зашло в тупик, в котором каждая сторона права по-своему. По мнению Сэма Хартмана, ситуация приближается к состоянию, требующему проведения общего голосования (GR, general resolution), в котором сообщество примет решение в отношении альтернативных систем инициализации и поддержки sysvinit с elogind.

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

В настоящее время в репозитории уже накопилось (Архивная копия от 28 ноября 2020 на Wayback Machine) 1033 пакета, поставляющих сервисные юниты для systemd, но не включающих скрипты init.d. Для решения этой проблемы предлагается поставлять по умолчанию service-файлы, но подготовить обработчик, который бы автоматически разбирал команды из этих файлов и генерировал на их основе скрипты init.d.

Если сообщество решит, что в Debian достаточно поддержки одной системы инициализации, можно больше не заботиться о sysvinit и elogind, сосредоточившись только на unit-файлах и systemd. Такое решение негативно повлияет на порты, не использующие ядро Linux ( Debian GNU/Hurd, Debian GNU/NetBSD (Архивная копия от 22 декабря 2019 на Wayback Machine) и Debian GNU/kFreeBSD), но в основном архиве подобных портов пока нет и они не имеют статус официально поддерживаемых.

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

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Debian возвращается к вопросу поддержки нескольких систем инициализации», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.