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 в рабочем виде значительно проще, чем удалить, а потом пытаться добавить вновь. У каждого варианта решения есть плюсы и минусы, поэтому перед голосованием потребуется всестороннее обсуждение всех аргументов за и против.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.