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с добавленным суффиксом -<COMPONENT> для установок, основанных на компонентах.
-
См. 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.Примечание
Предпочтительное значение этой переменной —
DEB-DEFAULT, но для обратной совместимости с CPackDeb в CMake до версии 3.6 эта функция отключена по умолчанию.Примечание
Используя имена файлов, отличные от значений по умолчанию, могут возникнуть дубликаты имен. Дублирующие файлы перезаписываются, и от упаковщика требуется установить переменные таким образом, чтобы предотвратить такие ошибки.
-
CPACK_DEBIAN_PACKAGE_VERSION -
Версия пакета Debian
- Обязательно: ДА
- По умолчанию:
CPACK_PACKAGE_VERSION
-
CPACK_DEBIAN_PACKAGE_RELEASE -
Релиз пакета Debian — номер ревизии Debian.
- Обязательно: ДА
- По умолчанию: 1
Это номер версии самого пакета 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
-
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 -
Установить поле приоритета, например, required, important, standard, optional, extra
- Обязательно: ДА
- По умолчанию: “optional”
См. 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 -
Может быть установлено в значение ON для использования
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-DependsDebian-пакета. Как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 -
Устанавливает поле
EnhancesDebian-пакета. Аналогично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 -
Устанавливает поле
BreaksDebian-пакета. Когда двоичный пакет (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 -
Устанавливает поле
ConflictsDebian-пакета. Когда один двоичный пакет объявляет конфликт с другим, используя поле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 -
Устанавливает поле
ProvidesDebian-пакета. Виртуальный пакет — это пакет, который появляется в поле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 -
Устанавливает поле
ReplacesDebian-пакета. Пакеты могут объявлять в своём файле управления, что они должны перезаписывать файлы в определённых других пакетах или полностью заменять другие пакеты.- Обязательно : НЕТ
- По умолчанию :
- Пустая строка для установок, не основанных на компонентах
-
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 -
Устанавливает поле
RecommendsDebian-пакета. Позволяет пакетам объявлять сильную, но не абсолютную, зависимость от других пакетов.- Обязательно : НЕТ
- По умолчанию :
- Пустая строка для установок, не основанных на компонентах
-
CPACK_DEBIAN_PACKAGE_RECOMMENDSдля установок, основанных на компонентах.
См. http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
-
CPACK_DEBIAN_PACKAGE_SUGGESTS -
CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS -
Устанавливает поле
SuggestsDebian-пакета. Позволяет пакетам объявлять группу пакетов для установки.- Обязательно : НЕТ
- По умолчанию :
- Пустая строка для установок, не основанных на компонентах
-
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не установлена. В частности, скрипты должны иметь соответствующий флаг исполняемости перед генерацией пакета.
-
CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION -
CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_STRICT_PERMISSION -
Эта переменная указывает, следует ли строго следовать политике Debian для файлов управления.
- Обязательно: НЕТ
- По умолчанию: FALSE
Использование:
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
Примечание
Это значение не интерпретируется. Также можно передать необязательный номер ревизии связанного исходного пакета.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.9/module/CPackDeb.html