Spec-Zone.ru › CMake 3.10

CPackDeb

Встроенный (бинарный) генератор CPack Deb (только для Unix)

Переменные, специфичные для генератора CPack Debian (DEB)

CPackDeb может использоваться для создания пакетов Deb с помощью CPack. CPackDeb — это CPack генератор, поэтому он использует переменные CPACK_XXX, используемые CPack.

Генератор CPackDeb должен работать на любом хосте Linux, но он будет создавать лучшие пакеты deb, когда инструменты, специфичные для Debian, dpkg-xxx доступны в системе сборки.

CPackDeb имеет специфические возможности, которые управляются специфическими CPACK_DEBIAN_XXX переменными.

CPACK_DEBIAN_<COMPONENT>_XXXX переменные могут использоваться для получения значений, специфичных для компонента. Обратите, однако, внимание, что <COMPONENT> относится к имени группировки, написанному заглавными буквами. Это может быть имя компонента или имя группы компонентов.

Ниже приведены некоторые ресурсы Wiki CPackDeb, которые присутствуют здесь по историческим причинам и больше не поддерживаются, но все же могут оказаться полезными:

  • https://cmake.org/Wiki/CMake:CPackConfiguration
  • https://cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29

Список переменных, специфичных для CPackDEB:

CPACK_DEB_COMPONENT_INSTALL

Включить компонентную упаковку для CPackDEB

  • Обязательно : НЕТ
  • По умолчанию : ВЫКЛ.

Если включено (ВКЛ.), генерируются несколько пакетов. По умолчанию генерируется один пакет, содержащий файлы всех компонентов.

CPACK_DEBIAN_PACKAGE_NAME
CPACK_DEBIAN_<COMPONENT>_PACKAGE_NAME

Установить поле управления пакетом (переменная автоматически преобразуется в нижний регистр).

  • Обязательно : ДА
  • По умолчанию :
    • CPACK_PACKAGE_NAME для установок, не основанных на компонентах
    • CPACK_DEBIAN_PACKAGE_NAME с добавлением суффикса - для установок, основанных на компонентах.

См. https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source

CPACK_DEBIAN_FILE_NAME
CPACK_DEBIAN_<COMPONENT>_FILE_NAME

Имя файла пакета.

  • Обязательно : ДА
  • По умолчанию : <CPACK_PACKAGE_FILE_NAME>[-<component>].deb

Это может быть установлено в DEB-DEFAULT, чтобы позволить CPackDeb генерировать имя файла пакета самостоятельно в формате deb:

<PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb

В качестве альтернативы указанное имя файла пакета должно заканчиваться суффиксом .deb или .ipk.

Примечание

Предпочтительное значение этой переменной — DEB-DEFAULT, но для обратной совместимости с CPackDeb в CMake до версии 3.6 эта функция по умолчанию отключена.

Примечание

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

CPACK_DEBIAN_PACKAGE_EPOCH

Эпоха пакета Debian

  • Обязательно : Нет
  • По умолчанию : -

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

CPACK_DEBIAN_PACKAGE_VERSION

Версия пакета Debian

  • Обязательно : ДА
  • По умолчанию : CPACK_PACKAGE_VERSION

Эта переменная может содержать только алфавитно-цифровые символы (A-Za-z0-9) и символы . + - ~ (точка, плюс, тире, тильда) и должна начинаться с цифры. Если CPACK_DEBIAN_PACKAGE_RELEASE не установлено, то тире недопустимы.

Примечание

Для обеспечения обратной совместимости с CMake 3.9 и ниже, неудачная проверка содержимого этой переменной не является жесткой ошибкой, когда обе переменные CPACK_DEBIAN_PACKAGE_RELEASE и CPACK_DEBIAN_PACKAGE_EPOCH не установлены. Вместо этого сообщается предупреждение автору.

CPACK_DEBIAN_PACKAGE_RELEASE

Релиз пакета Debian — номер ревизии Debian.

  • Обязательно : Нет
  • По умолчанию : -

Это номер версии самого пакета DEB, то есть версия упаковки, а не версия содержимого (см. CPACK_DEBIAN_PACKAGE_VERSION). Можно изменить значение по умолчанию, если предыдущая упаковка имела ошибки и/или вы хотите использовать специфическое для дистрибутива Linux нумерацию.

CPACK_DEBIAN_PACKAGE_ARCHITECTURE
CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE

Архитектура пакета Debian

  • Обязательно : ДА
  • По умолчанию : Результат dpkg --print-architecture (или i386 если dpkg не найден)
CPACK_DEBIAN_PACKAGE_DEPENDS
CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS

Устанавливает зависимости пакета Debian.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок, не основанных на компонентах
    • CPACK_DEBIAN_PACKAGE_DEPENDS для установок, основанных на компонентах.

Примечание

Если CPACK_DEBIAN_PACKAGE_SHLIBDEPS или, точнее, CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS установлены для этого компонента, обнаруженные зависимости будут добавлены к CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS вместо CPACK_DEBIAN_PACKAGE_DEPENDS. Если CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS — пустая строка, то для этого компонента будут установлены только автоматически обнаруженные зависимости.

Пример:

set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libc6 (< 2.4)")
CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS

Устанавливает взаимозависимости компонентов, если они указаны с помощью переменных CPACK_COMPONENT_<compName>_DEPENDS.

  • Обязательно : НЕТ
  • По умолчанию : -
CPACK_DEBIAN_PACKAGE_MAINTAINER

Поддерживающий пакет Debian

  • Обязательно : ДА
  • По умолчанию : CPACK_PACKAGE_CONTACT
CPACK_DEBIAN_PACKAGE_DESCRIPTION
CPACK_COMPONENT_<COMPONENT>_DESCRIPTION

Описание пакета Debian

  • Обязательно : ДА
  • По умолчанию :
    • CPACK_DEBIAN_PACKAGE_DESCRIPTION если установлено или
    • CPACK_PACKAGE_DESCRIPTION_SUMMARY
CPACK_DEBIAN_PACKAGE_SECTION
CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION

Установить поле раздела, например, admin, devel, doc, …

  • Обязательно : ДА
  • По умолчанию : “devel”

См. https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections

END_OF_DOCUMENT_MARKER
CPACK_DEBIAN_ARCHIVE_TYPE

Формат архива, используемый для создания пакета Debian.

  • Обязательно : ДА
  • По умолчанию : “paxr”

Возможные значения:

  • paxr
  • gnutar

Примечание

Формат архива pax по умолчанию является наиболее переносимым форматом и генерирует пакеты, которые не обрабатывают разреженные файлы особым образом. В то же время формат GNU tar поддерживает более длинные имена файлов.

CPACK_DEBIAN_COMPRESSION_TYPE

Сжатие, используемое для создания пакета Debian.

  • Обязательно : ДА
  • По умолчанию : “gzip”

Возможные значения:

  • lzma
  • xz
  • bzip2
  • gzip
CPACK_DEBIAN_PACKAGE_PRIORITY
CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY

Устанавливает поле управления приоритетом, например, обязательное, важное, стандартное, необязательное, дополнительное

  • Обязательно : ДА
  • По умолчанию : “необязательное”

См. https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities

CPACK_DEBIAN_PACKAGE_HOMEPAGE

URL веб-сайта для этого пакета, предпочтительно (применительно) сайт, с которого можно получить исходный код, а также дополнительную документацию или информацию от поставщика.

  • Обязательно : НЕТ
  • По умолчанию : -

Примечание

Содержание этого поля — это простой URL без каких-либо окружающих символов, таких как <>.

CPACK_DEBIAN_PACKAGE_SHLIBDEPS
CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS

Может быть установлено в ВКЛ для использования dpkg-shlibdeps для создания лучшего списка зависимостей пакетов.

  • Обязательно : НЕТ
  • По умолчанию :
    • CPACK_DEBIAN_PACKAGE_SHLIBDEPS, если установлено, или
    • ВЫКЛ

Примечание

Возможно, вам потребуется установить CMAKE_INSTALL_RPATH на соответствующее значение, если вы используете эту функцию, так как в противном случае dpkg-shlibdeps может не найти собственные общие библиотеки. См. https://cmake.org/Wiki/CMake_RPATH_handling.

CPACK_DEBIAN_PACKAGE_DEBUG

Может быть установлено при вызове cpack для отслеживания отладочной информации во время выполнения CPackDeb.

  • Обязательно : НЕТ
  • По умолчанию : -
CPACK_DEBIAN_PACKAGE_PREDEPENDS
CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS

Устанавливает поле Pre-Depends пакета Debian. Как Depends, за исключением того, что оно также принудительно выполняет dpkg завершение установки пакетов, указанных ранее, даже до начала установки пакета, в котором объявляется предварительная зависимость.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок без компонент
    • CPACK_DEBIAN_PACKAGE_PREDEPENDS для компонентных установок.

См. http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps

CPACK_DEBIAN_PACKAGE_ENHANCES
CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES

Устанавливает поле Enhances пакета Debian. Аналогично Suggests, но работает в обратном направлении: объявляет, что пакет может улучшать функциональность другого пакета.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок без компонент
    • CPACK_DEBIAN_PACKAGE_ENHANCES для компонентных установок.

См. http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps

CPACK_DEBIAN_PACKAGE_BREAKS
CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS

Устанавливает поле Breaks пакета Debian. Когда двоичный пакет (P) объявляет, что он нарушает работу других пакетов (B), dpkg не позволит пакету (P), который объявляет Breaks, быть распакованным, пока пакеты, которые будут нарушены (B), не будут отключены. Пока пакет (P) сконфигурирован, ранее отключенные пакеты (B) не могут быть сконфигурированы повторно.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок без компонент
    • CPACK_DEBIAN_PACKAGE_BREAKS для компонентных установок.

См. https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks

CPACK_DEBIAN_PACKAGE_CONFLICTS
CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS

Устанавливает поле Conflicts пакета Debian. Когда один двоичный пакет объявляет конфликт с другим, используя поле Conflicts, dpkg не позволит им быть распакованными на системе одновременно.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок без компонент
    • CPACK_DEBIAN_PACKAGE_CONFLICTS для компонентных установок.

См. https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts

Примечание

Это более строгое ограничение, чем Breaks, которое предотвращает конфигурацию нарушенного пакета, пока пакет, вызывающий нарушение, находится в состоянии «Распакован», но позволяет распаковать оба пакета одновременно.

CPACK_DEBIAN_PACKAGE_PROVIDES
CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES

Устанавливает поле Provides пакета Debian. Виртуальный пакет — это тот, который отображается в поле управления Provides другого пакета.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок без компонент
    • CPACK_DEBIAN_PACKAGE_PROVIDES для компонентных установок.

См. https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual

CPACK_DEBIAN_PACKAGE_REPLACES
CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES

Устанавливает поле Replaces пакета Debian. Пакеты могут объявлять в своём файле управления, что они должны перезаписывать файлы в определённых других пакетах или полностью заменять другие пакеты.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок без компонент
    • CPACK_DEBIAN_PACKAGE_REPLACES для компонентных установок.

См. http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps

CPACK_DEBIAN_PACKAGE_RECOMMENDS
CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS

Устанавливает поле Recommends пакета Debian. Разрешает пакетам объявлять сильную, но не абсолютную, зависимость от других пакетов.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок без компонент
    • CPACK_DEBIAN_PACKAGE_RECOMMENDS для компонентных установок.

См. http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps

END_OF_DOCUMENT_MARKER
CPACK_DEBIAN_PACKAGE_SUGGESTS
CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS

Устанавливает поле Suggests Debian-пакета. Позволяет пакетам объявлять рекомендуемые группы для установки пакетов.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок, не основанных на компонентах
    • CPACK_DEBIAN_PACKAGE_SUGGESTS для установок, основанных на компонентах.

См. http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps

CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS
  • Обязательно : НЕТ
  • По умолчанию : ВЫКЛ.

Позволяет автоматически генерировать файл shlibs. Совместимость определяется значением переменной CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY.

Примечание

Библиотеки учитываются только в том случае, если для них заданы и имя библиотеки, и версия. Это можно сделать, установив свойство SOVERSION с помощью команды set_target_properties().

CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY

Политика совместимости для автоматически сгенерированного файла shlibs.

  • Обязательно : НЕТ
  • По умолчанию : “=”

Определяет политику совместимости для автоматически сгенерированного файла shlibs. Возможные значения: “=”, “>=”.

См. https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps

CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_EXTRA

Эта переменная позволяет расширенным пользователям добавлять пользовательские скрипты в control.tar.gz. Типичное использование – для файлов конфигурации, postinst, postrm, prerm.

  • Обязательно : НЕТ
  • По умолчанию : -

Использование:

set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
    "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")

Примечание

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

CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_STRICT_PERMISSION

Эта переменная указывает, следует ли строго придерживаться политики Debian для файлов управления.

  • Обязательно : НЕТ
  • По умолчанию : ЛОЖЬ

Использование:

set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION TRUE)

Примечание

Это переопределяет разрешения на исходные файлы, следуя правилам, установленным политикой Debian https://www.debian.org/doc/debian-policy/ch-files.html#s-permissions-owners

CPACK_DEBIAN_PACKAGE_SOURCE
CPACK_DEBIAN_<COMPONENT>_PACKAGE_SOURCE

Устанавливает поле Source двоичного Debian-пакета. Когда имя двоичного пакета отличается от имени исходного пакета (особенно когда несколько компонентов/библиотек создаются из одного исходного), источник, из которого был создан двоичный пакет, должен быть указан с помощью поля Source.

  • Обязательно : НЕТ
  • По умолчанию :
    • Пустая строка для установок, не основанных на компонентах
    • CPACK_DEBIAN_PACKAGE_SOURCE для установок, основанных на компонентах.

См. https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source

Примечание

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

Создание Debian-пакетов в Windows

Для передачи разрешений на файлы UNIX из этапа установки в генератор CPack DEB используется «cmake_mode_t» NTFS альтернативный поток данных (ADT).

При использовании файловой системы без поддержки ADT можно сохранить только разрешения на чтение/запись владельца.

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.10/module/CPackDeb.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API