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 -
Установите поле приоритета, например, обязательный, важный, стандартный, необязательный, дополнительный
- Обязательно : ДА
- По умолчанию : “необязательный”
См. 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
-
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 по файлам управления.
- Обязательно: НЕТ
- По умолчанию: 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.8/module/CPackDeb.html