Стандартная база Linux (LSB ) совместный проект нескольких дистрибутивов Linux в рамках организационной структуры Linux Foundation по стандартизации структуры программной системы, включая Стандарт иерархии файловой системы, используемый в Ядро Linux. LSB основан на спецификации POSIX, Single UNIX Specification (SUS) и нескольких других открытых стандартах, но расширяет их в определенных областях.
Согласно LSB:
Целью LSB является разработка и продвижение набора открытых стандартов, которые повысят совместимость между дистрибутивами Linux и позволят программным приложениям работать в любой совместимой системе даже в двоичной форме. Кроме того, LSB поможет координировать усилия по привлечению поставщиков программного обеспечения для переноса и написания продуктов для операционных систем Linux.
Соответствие LSB может быть подтверждено для продукта процедурой сертификации.
LSB определяет, например: стандартные библиотеки, ряд команд и утилит, расширяющих Стандарт POSIX, структура иерархии файловой системы, уровни выполнения, система печати, включая спулеры, такие как CUPS и такие инструменты, как Foomatic, а также несколько расширений для X Window System.
LSB также определяют средства загрузки, такие как $ local_fs, $ network, которые используются для указания зависимостей служб в Скрипты инициализации в стиле System V. Машиночитаемый блок комментариев в верхней части сценария предоставляет информацию, необходимую для определения того, в какой точке процесса инициализации сценарий должен быть запущен. Он называется заголовком LSB .
. Команда lsb_release -a
доступна во многих системах для получения сведений о версии LSB или может быть сделана доступной путем установки соответствующего пакета, например redhat-lsb
в дистрибутивах с ароматом Red-Hat, таких как Fedora или пакет lsb-release
в дистрибутивах на основе Debian.
LSB разработан для обеспечения двоичной совместимости и создания стабильного двоичного интерфейса приложения (ABI) для независимых поставщиков программного обеспечения. Для обеспечения обратной совместимости каждая последующая версия является чисто аддитивной. Другими словами, интерфейсы только добавляются, а не удаляются. LSB принял политику отказа от интерфейса, чтобы дать разработчикам приложений достаточно времени на случай, если интерфейс будет удален из LSB.
Это позволяет разработчику полагаться на каждый интерфейс в LSB в течение известного времени, а также планировать изменения, не удивляясь. Интерфейсы удаляются только после того, как они были помечены как «устаревшие» как минимум для трех основных версий или примерно одиннадцать лет.
LSB 5.0 - это первый основной выпуск, который нарушает обратную совместимость с более ранними версиями.
LSB версии 3.1 зарегистрирован как официальный стандарт ISO. Основные его части:
Существует также ISO / IEC TR 24715: 2006, который определяет области конфликта между ISO / IEC 23360 (спецификация Linux Standard Base 3.1) и ISO / IEC 9945: 2003 ( POSIX) Международный стандарт.
ISO / IEC 23360 и ISO / IEC TR 24715 можно бесплатно загрузить с веб-сайта ISO.
Хотя LSB является стандартом и не имеет как конкурент, за ним следуют лишь несколько дистрибутивов Linux. Например, только 21 выпуск (версия) дистрибутива сертифицирован для LSB версии 4.0, в частности Red Flag Linux Desktop 6.0, Red Hat Enterprise Linux 6.0, SUSE Linux Enterprise 11 и Ubuntu 9.04 (Jaunty Jackalope) ; еще меньше сертифицировано для версии 4.1.
LSB критиковали за то, что он не принимает участие в проектах, в первую очередь проекта Debian, за пределами сферы своих компаний-членов.
LSB указывает, что пакеты программного обеспечения должны доставляться либо как LSB-совместимый установщик, либо (предпочтительно) доставляться в ограниченной форме Формат Менеджера пакетов RPM.
Этот выбор формата пакета исключает использование многих других существующих форматов пакетов, несовместимых с RPM. Чтобы решить эту проблему, стандарт не диктует, какой формат пакета система должна использовать для своих собственных пакетов, просто то, что RPM должен поддерживаться, чтобы разрешить установку пакетов от сторонних дистрибьюторов в соответствующей системе.
Debian включил необязательную поддержку LSB на раннем этапе, в версии 1.1 в «woody» (3.0; 19 июля 2002 г.), 2.0 в «sarge» (3.1; 6 июня 2005 г.), 3,1 в «etch» (4,0; 8 апреля 2007 г.), 3,2 в «lenny» (5,0; 14 февраля 2009 г.) и 4,1 в «хрип» (7; 4 мая 2013 г.). Чтобы использовать сторонние LSB-совместимые пакеты RPM, конечный пользователь должен использовать программу Debian Alien, чтобы преобразовать их в собственный формат пакетов и затем установить их.
Формат RPM, заданный LSB, имеет ограниченное подмножество функций RPM - для блокировки использования функций RPM, которые нельзя было бы перевести в.deb с помощью Alien или других программ преобразования пакетов, и наоборот, поскольку каждый формат имеет свои возможности. другой не хватает. На практике не все двоичные пакеты Linux обязательно совместимы с LSB, поэтому, хотя большинство из них можно преобразовать между.rpm и.deb, эта операция ограничена подмножеством пакетов.
Используя Alien, Debian является LSB-совместимым для всех целей и задач, но, согласно описанию их пакета lsb, наличие пакета "не означает, что мы считаем, что Debian полностью соответствует стандарту Linux Standard Base, и его не следует истолковывать как утверждение, что Debian является LSB-совместимым ».
Debian стремился соблюдать LSB, но с множеством ограничений. Однако эти усилия прекратились примерно в июле 2015 года из-за отсутствия интереса и рабочей силы внутри проекта. В сентябре 2015 года проект Debian подтвердил, что, хотя поддержка стандарта иерархии файловой системы (FHS) будет продолжена, поддержка LSB прекращена. Ubuntu последовала за Debian в ноябре 2015 года.
Кроме того, комплекты тестов на соответствие подвергались критике за то, что они содержат ошибки и являются неполными - в частности, в 2005 году LSB критиковали за плохо написанное тесты, которые могут вызвать несовместимость между LSB-сертифицированными дистрибутивами, когда некоторые из них реализуют некорректное поведение, чтобы тесты с ошибками работали, в то время как другие запрашивают и получают отказы от выполнения тестов. Он также осудил отсутствие тестирования приложений, указав, что тестирование только дистрибутивов никогда не может решить проблему приложений, полагающихся на поведение, определяемое реализацией.
Для поставщиков, рассматривающих LSB-сертификаты в своих усилиях по переносимости, Linux Foundation спонсирует инструмент, который анализирует символы и библиотеки, выходящие за пределы LSB, и предоставляет рекомендации.