Анонсирован /etc/os-release, единый файл с информацией о релизах дистрибутивов
Подчеркивается, что этот отчасти непопулярный шаг предпринят, чтобы окончательно убрать из кода systemd все специфичные для отдельных дистрибутивов зависимости и решения. Учитывая, что множество дистрибутивов, в том числе большинство крупных и известных - уже провели всю необходимую адаптацию /etc/os-release (включая родной для разработчиков дистрибутив Fedora), такое форсирование событий не должно как-то негативно сказаться на большинстве пользователей systemd. "А все оставшиеся получат лишь дополнительную мотивацию для того, чтобы, наконец, проделать то, для чего было отведено столько много времени."
Для дистрибутивов, в которых отсутствует поддержка /etc/os-release, это как минимум будет значить следующее:
- Пока не будет обеспечена поддержка /etc/os-release в определённом дистрибутиве – система сборки пакета не сможет больше автоматически идентифицировать такой дистрибутив (даже если это и работало раньше). Можно попытаться обойти это самостоятельно с помощью использования подходящего для этого случая ключа "--with-distro=on" в строке настройки пакета перед установкой;
- Пока не будет обеспечена поддержка /etc/os-release – строка-приглашение на ранней стадии загрузки (до-графической стадии) будет иметь вид "Welcome to Linux " на сплошном белом фоне, вместо привычной цветной заставки с названием дистрибутива.
С другой стороны новая система привносит следующие плюсы:
- Облегчает разработчикам программ получение информации о дистрибутиве на котором они запускаются;
- Предоставляется универсальный формат, удобный для автоматического парсинга технических характеристик дистрибутива (содержит версию ОС, название и некоторые параметры). Пример:
- Новый формат настройки идентификации дистрибутива и его справочно-информационной составляющая при инициализации теперь очень легко расширяется и модифицируется. Например, теперь можно очень просто настраивать под себя как содержание вывода, так и свои собственные ANSI-цвета для всех сообщений, выводимых при загрузке системы.
Таким образом, теперь файл /etc/os-release должен содержать всю информацию для идентификации каждой отдельной операционной системы. В общем виде формат файла os-release представляет собой список с отдельными парами переменная-значение в каждой отдельной строке, что очень похоже на использование переменных в shell-окружении.
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"
Также интересно, что стандарт LSB предоставляет утилиту lsb_release для достижения похожей унификации в хранении и получении данной информации, но разработчики systemd отказываются использовать её, называя её интерфейс "странным" и "изначально плохо спроектированным". Lsb_release является скриптом, который требуется запустить для получения параметров, в то время как в случае /etc/os-release достаточно открыть простой по своей структуре файл. Из недостатков таких попыток унификации как /etc/system-release называется трудность парсинга и отсутствие поддержки расширения параметров (в /etc/os-release дистрибутивы могут свободно добавлять собственные параметры, используя префикс с названием дистрибутива).
Источник: http://www.opennet.ru/opennews/art.shtml?num=33092
|
0 | Tweet | Нравится |
|