Всё сказанное в предыдущей новелле относилось к так называемым бинарным пакетам, предназначенным для установки в системе с последующим практическим применением. Однако кроме них в формате rpm собираются и пакеты с исходными текстами. Они опознаются по суффиксу src вместо указания архитектуры, например:

rpm-4.9.1.2-18.2.2.src.rpm

Можно видеть, что все остальные компоненты имени полностью соответствуют таковым для бинарного аналога.

Пакет src.rpm обычно включает следующие компоненты:

  • архив исходных текстов в том виде, в каком он распространяется разработчиком пакета (*.tar.gz, *.tar.bz2 и так далее, например, rpm-4.9.1.2.tar.bz2);
  • патч или набор патчей — файлы вида *.diff, содержащие фрагменты кода, созданные майнтайнером пакета, модифицирующие или дополняющие исходный код авторского пакета; их назначение — адаптация последнего для работы в среде данного дистрибутива; так что если пакет адаптации не требует, то патчи в составе src.rpm могут и отсутствовать;
  • макросы — файлы вида *macros (например, rpm-suse_macros), содержащие наборы команд, выполняемых в ходе сборки пакета, типа распаковки архива, перехода в каталог с исходниками, наложения патчей, и так далее; макросы призваны упростить устройство spec-файла, и также не обязательно имеются в наличии;
  • разнообразные файлы, добавленные майнтанером пакета, например, образцы конфигов по умолчанию, отличные от тех, что предлагает разработчик пакета; очевидно, что и они присутствуют не всегда;
  • так называемый spec-файл (например, rpm.spec), содержащий, с одной стороны, все сведения, необходимые для генерирования метаинформации бинарного пакета, с другой — последовательность действий по его сборке в виде макросов и (или) прямых командных директив.

Как видно из приведённого перечня, в пакете src.rpm в обязательном порядке присутствуют два файла — архив исходников (так называемый тарбалл) и spec-файл. И если тарбалл пакета получается в готовом виде от разработчика, и одинаков, с поправкой на версию, во всех дистрибутивах, то spec-файл создаётся майнтайнером пакета данного дистрибутива, и определяет его специфику.

В отличие от бинарных rpm, пакеты src.rpm не предназначены для непосредственной установки в систему. Они распространяются для соблюдения условий открытых лицензий, в первую очередь, GPL, требующей свободного доступа к исходникам всех продуктов, содержащих GPL-лицензированный код.

Однако для распространения пакетов с исходными текстами есть и более практическая причина (надеюсь, читатель понимает, где по тексту должны быть расставлены большие и жирные смайлики). Это — возможность для пользователя дистрибутива пересобрать тот или иной пакет в соответствие со своими предпочтениями. И openSUSE, благодаря уникальной системе OBS (Open Build Service) предоставляет к тому очень широкие возможности. Которые будут подробно рассмотрены в ряде новелл Цикла третьего.

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

Но сначала — пара слов о таком парадоксальном явлении в openSUSE, как пакеты исходников без исходников.


Назад | К содержанию | Вперёд