Systemd не будет поддерживать дистрибутивы без /etc/os-release
9Иллюстрация с сайта Art-for-a-change.Com
Леннарт Поттеринг (Lennart Poettering), автор таких известных Open Source-проектов, как PulseAudio и systemd, объявил о решении прекратить в init-системе systemd поддержку Linux-дистрибутивов, не имеющих в своей файловой системе файла /etc/os-release.
/etc/os-release — это очередное нововведение от Поттеринга, призванное унифицировать место и формат хранения данных о разновидности и версии дистрибутива. По задумке, файл /etc/os-release должен стать новым стандартом для дистрибутивов, заменив существующее в наши дни многообразие из /etc/redhat-release, /etc/debian_version, /etc/gentoo-release, /etc/meego-release и т.п. Файл является текстовым и содержит в себе строки с парами вида «ключ=значение» — например:
NAME=Fedora VERSION="17 (Beefy Miracle)" ID=fedora VERSION_ID=17 PRETTY_NAME="Fedora 17 (Beefy Miracle)" ANSI_COLOR="0;34" CPE_NAME="cpe:/o:fedoraproject:fedora:17"
Авторы указывают на три основные причины использовать /etc/os-release:
- Упрощение жизни разработчикам приложений, которым нужно просто узнать, на каком дистрибутиве запущена программа (не потребуется делать многочисленные проверки разных файлов).
- Наличие и «красивого» (хорошо воспринимаемого пользователем) названия, и легко распознаваемых компьютером данных о версии/ОС (для использования в сборочных системах).
- Расширяемость: при необходимости легко добавить новые поля.
У Леннарта и его команды уже готов ответ на вопрос о том, зачем изобретать очередной стандарт, когда уже существует инструмент lsb_release, выводящий сведения о любом дистрибутиве, который соответствует требованиям LSB (Linux Standard Base). По его словам, lsb_release не представляется самым удобным средством, потому что с ним возникает потребность запускать «тяжелый» shell-скрипт на раннем этапе загрузки системы (например, для отображения приветствия), его код неудобно расширять, а также пакет с ним является опциональным во многих дистрибутивах. «Утилита lsb_release кажется нам попыткой абстрагирования от проверки версии дистрибутива в то время, как требуется стандартизация этих проверок», — утверждается в FAQ по /etc/os-release.
Наиболее важным же является тот факт, что команда разработчиков набирающей популярность системы systemd не просто придумала и предложила /etc/os-release, но и приняла решение сделать его наличие в системе обязательным условием для всех дистрибутивов, желающих использовать systemd.
Постоянная ссылка к новости: http://www.nixp.ru/news/11584.html. Дмитрий Шурупов по материалам 0pointer.de.
Linux-дистрибутивы Ubuntu*Pack (OEMPack) обновились до версии 20.04
В OpenBSD предложили патч для совместимости с проблемой systemd в обработке имён юзеров
Группа неизвестных «угрожает» сообществу Debian созданием форка 5 32
Обзор обновлений в systemd: привязка к /run, интеграция с journald, переход на LGPL… 2
В ведущих Linux-дистрибутивах появится каталог /run 7 6
Представлена systemd — новая событийная init-система для GNU/Linux 6 7
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
как же Poettering задрал!
Ну есть же usb_release -a!!!!
s/usb_release/lsb_release/ ?
В предпоследнем абзаце новости объясняется, почему он не угодил. На эту тему там (в блоге Леннарта) в комментариях кинули удачную ссылку на XKCD про стандарты: xkcd.com/927/ ;-)
лёгкий и прозрачный скрипт на пито… wait, what?
всё правильно делает.
Пока единственное предложение Поттеринга с которым я полностью согласен.
судя по тому что я почитал в блоге Леннарта, вроде бы и хорошие весчи предлагает но как-то черезжопно
Имхо, весьма разумно. Стандартизация зоопарка — это хорошо.
В акрониме LSB буква «эс, как доллар» неспроста.
>>> потребность запускать «тяжелый» shell-скрипт на раннем этапе загрузки системы
Что мешает реализовать чтение тех же конфигов lsb_release на «нетяжелой» сишечке прямо в systemd для получения той же информации, что возвращает вызов lsb_release?
Ну и традиционный вопрос: нафига там цвет?!
+1 про цвет. Вогнало в ступор.
в порядке троллинга:
Ну это же десктопный линукс. там должны быть красные линии «в виде котенка. Котеночка. Нашим пользователям нравятся зверюшки.»
Конец троллинга.
А вообще не понимаю. Всегда были /etc/issue и /etc/issue.net которые работали и позволяли вывести приглашение системы так как надо, хоть с пингвинчиком в ASCII-art.
я согласен с /etc/os-release,
уж лучше один файл на всех дистрах, чем запускать скрипт. (дешево и сердито)
О-хо-хо… Как знать преодолевать разницу в дистрах в «полезном» смысле это невпадлу… А к этому добавить пару строчек для определения дистра — это уже прям бедааа.
Хм… в моём OpenSUSE 12.1 и systemd, и os-release есть (есть также и специфичный для дистрибутива SuSeE-release), так что здесь работать будет.
В принципе, абсолютно логичная вещь — стандартный текстовый файл с парой обязательных полей + разработчики могут записать своих… Скрипт или функция — не так гибко.
А такая ультимативная форма… ну надо же иногда и подтолкнуть, чтоб покатилось… альтернативы тоже есть.