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

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 20 Sep 2019.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    Сэм Хартман (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.

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

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

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

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

     
    CKAP and seostock like this.
  2. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,019
    Likes Received:
    7,618
    Reputations:
    24
    Возникает вопрос а так-ли ушь нужно поддерживать каждую выдуманную свистоперделку ?
    В systemd есть определенная иерархия, которая вроде-как повеселее старенькой init и сильно повеселее. Хотя х/з как дальше будет... и init попроще вроде-как для администрирования. Хотя может дело привычки х/з.
     
    Suicide likes this.
  3. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,019
    Likes Received:
    7,618
    Reputations:
    24
    Кстати о systemd...