CPackDeb
Встроенный (бинарный) генератор пакетов CPack Deb (только для Unix)
Переменные, специфичные для генератора пакетов CPack Debian (DEB)
CPackDeb можно использовать для создания пакетов Deb с помощью CPack. CPackDeb является генератором CPack, поэтому он использует переменные CPACK_XXX, используемые CPack : https://cmake.org/Wiki/CMake:CPackConfiguration. Генератор CPackDeb должен работать на любом хосте Linux, но он создаст лучший пакет deb, когда на системе сборки доступны инструменты Debian, такие как ‘dpkg-xxx’.
CPackDeb имеет специфические функции, которые управляются специфическими CPACK_DEBIAN_XXX переменными.
CPACK_DEBIAN_<COMPONENT>_XXXX переменные могут быть использованы для получения компонент-специфичных значений. Однако обратите внимание, что <COMPONENT> ссылается на имя группы, написанное заглавными буквами. Это может быть имя компонента или имя ГРУППЫ компонента.
Подробное использование можно найти на вики-странице: https://cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29 . Однако в качестве полезного напоминания приведён список специфических переменных:
-
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_PACKAGE_VERSION -
Версия пакета Debian
- Обязательно : ДА
- По умолчанию :
CPACK_PACKAGE_VERSION
-
CPACK_DEBIAN_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_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_COMPRESSION_TYPE -
Сжатие, используемое для создания пакета Debian. Возможные значения: lzma, xz, bzip2 и gzip.
- Обязательно : ДА
- По умолчанию : ‘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 -
Может быть установлено в ВКЛЮЧЕНО для использования
dpkg-shlibdepsдля генерации лучшего списка зависимостей пакета.- Обязательно : НЕТ
- По умолчанию :
-
CPACK_DEBIAN_PACKAGE_SHLIBDEPSесли задано или - ВЫКЛЮЧЕНО
-
Примечание
Возможно, вам потребуется установить
CMAKE_INSTALL_RPATHна соответствующее значение, если вы используете эту функцию, так как если этого не сделать,dpkg-shlibdepsможет не найти ваши собственные библиотеки shared libs. См. 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 -
Устанавливает поле
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_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 в отношении файлов управления.
- Обязательно : НЕТ
- По умолчанию : ЛОЖЬ
Использование:
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.5/module/CPackDeb.html