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> относится к **имени группы**, написанному заглавными буквами. Это может быть имя компонента или имя группы компонентов.
Ниже приведены некоторые ресурсы CPackDeb Wiki, которые здесь по историческим причинам и больше не поддерживаются, но могут оказаться полезными:
- https://cmake.org/Wiki/CMake:CPackConfiguration
- https://cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29
Список переменных, специфичных для CPackRPM:
-
CPACK_DEB_PACKAGE_COMPONENT -
Включить компонентную упаковку для CPackRPM
- Обязательно : НЕТ
- По умолчанию : ВЫКЛ.
Если включено (ВКЛ.), генерируются несколько пакетов. По умолчанию генерируется один пакет, содержащий файлы всех компонентов.
-
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.Примечание
Предпочтительное значение этой переменной —
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_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-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
-
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. В частности, скрипты должны иметь соответствующий флаг разрешения на выполнение до создания пакета.
-
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.6/module/CPackDeb.html