9.3.1.1 Имена пакетов
Наиболее важной частью информации о пакете является NVR, то есть Name-Version-Release (Имя-Версия-Релиз), так как эта информация критична для работы RPM и используется в механизмах сравнения версий и отслеживания изменений. Имя устанавливается с помощью директивы Name:
Name: myapp |
Имя не должно содержать пробелов, табуляций и символов новой строки. Однако, допустимо использовать дефис.
Номер версии используется при сравнении версий. Алгоритм сравнения версий RPM сравнительно сложен, но может проявлять тупость в отношении номеров версий, не следующих соглашениям. Примеры хороших с точки зрения алгоритма номеров версий: 1.5, 2.3.1.1.4, 1.0. Пример определения:
Version: 1.1.2 |
В номере версии нельзя использовать дефис, так как дефисом отделяются имя, версия и релиз.
Релиз обычно начинается с 1 при стартовой сборке пакета и далее увеличивается на единицу при каждой следующей пересборке:
Release: 1 |
Всякий раз, когда вы изменили spec-файл или файлы пакета, увеличивайте номер релиза.
Если номера версии недостаточно для отделения одних групп версий от других, например, при смене плана разработки меняется система смены номеров версий, можно кроме версии задействовать понятие эпохи. Эпоха задается директивой Epoch: . Например:
Epoch: 3 |
Номера эпох задаются целым числом.
Директива Group: задает классификатор пакета. Для классификаторов лучше использовать имеющиеся группы пакетов, определенные в системе. Например:
Group: System Environment/Shells |
Многие графические утилиты управления пакетами разделяют пакеты по признаку группы. Официальный список групп пакетов расположен здесь: /usr/share/doc/rpm-4.1/GROUPS, либо по сходному пути для других версий RPM.
Директива Distribution: используется вендорами Linux-дистрибутивов для указания, что данный пакет является частью определенного дистрибутива. Множество пакетов, порожденных сторонними разработчиками, не связанными с Linux вендорами, не имеют в spec-файле данной директивы.
Distribution: Red Hat Linux |
Директива, именуемая Icon:, указывает на файл изображения из состава пакета. Формат изображения, которое будет идентифицировать пакет в графических средах, должен быть XPM или GIF.
9.3.1.2. Включение информации о компании
В юридических целях возможно потребуется включить в пакет информацию о производителе ПО и пакета. Если пакет создан независимым разработчиком, может быть необходимым добавить информацию для связи с разработчиком и получении более подробной информации.
Директива Vendor: определяет производителя пакета (компанию или организацию):
Vendor: The Really Cool Company |
Директива URL: предоставляет информацию о нахождении сетевого ресурса ПО (или его производителя):
Директива Packager: соодержит имя и электронный адрес сборщика пакета:
Packager: Bob Marley <marley@reggae.com> |
Директивы License: и Copyright: предоставляют правовую информацию о пакете. В более старых версиях пакетов использовалось поле Copyright:, в настоящее время используется License:.
9.3.1.3 Описание пакета
Директива Summary: - это однострочное описание пакета. Данное поле заменило прежнюю директиву Description:. Кроме Summary: имеется еще многострочное описание, оно содержится не в директиве, а в специальной секции spec-файла, %description. Например:
%description |
Для задания национальных описаний используется синтаксис: для Summary:
Summary(ru): Реально крутой пакет |
для %description
%description -l ru |
В секции %description используется некоторое количество опций форматирования. Пустые линии интерпретируются как разделители абзацев. Строки, начинающиеся с пробелов или табуляций, интерпретируются как предварительно отформатированные абзацы и отображаются как есть, как правило, моноширинным шрифтом.
9.3.1.4 Задание процессорной архитектуры
Spec-файл может указывать на тот факт, что пакет работоспособен только в определенной среде исполнения, или же может при соответствующей сборке запускаться более чем на одной платформе.
Для этого имеется несколько возможностей. Например, директива ExcludeArch: задает платформы, для которых пакет не должен собираться:
ExcludeArch: sparc s390 s390x |
В данном примере исключены для сборки архитектуры SPARC и мэйнфреймы s/390. В директиве можно использовать множественные определения, разделяя названия архитектур пробелами или запятыми.
Сходным образом действует ExclusiveArch: , с той разницей, что эта директива определяет список архитектур, в которых пакет будет работоспособен. Например:
ExclusiveArch: i386 ia64 alpha |
Директивы Excludeos: и Exclusiveos: ограничивают список операционных систем, соответственно, Excludeos: исключает какие-то ОС из списка поддерживаемых, а Exclusiveos: задает закрытый список ОС, которые поддерживаются.
Exclusiveos: linux |
Далее - Установка пути сборки
Назад - Начинаем создавать spec-файл
Содержание