apt-ftparchive - Утилита для создания индексных файлов
apt-ftparchive [-dsq] [--md5] [--delink] [--readonly] [--contents] [--arch architecture] [-o=config_string] [-c=config_file] {packages path [override-file [pathprefix]] | sources path [override-file [pathprefix]] | contents path | release path | generate config_file section... | clean config_file | {-v | --version} | {-h | --help}}
apt-ftparchive — это инструмент командной строки, который создает индексные файлы, используемые APT для доступа к источнику распространения. Файлы индекса должны создаваться на исходном сайте на основе содержимого этого сайта.
apt-ftparchive — это надмножество программы dpkg-scanpackages(1), объединяющее все ее функции с помощью команды packages. Он также содержит генератор файлов содержимого, содержимое и сложные средства для сценария процесса создания полного архива.
Внутренне apt-ftparchive может использовать двоичные базы данных для кэширования содержимого файла .deb и не зависит ни от каких внешних программ, кроме gzip(1). При полной генерации он автоматически выполняет проверку изменений файлов и создает нужные сжатые выходные файлы.
Если не указан параметр -h или --help, должна присутствовать одна из приведенных ниже команд.
Команда packages создает файл пакета из дерева каталогов. Он берет указанный каталог и рекурсивно ищет в нем файлы .deb, для каждого выдавая запись пакета в стандартный вывод. Эта команда примерно эквивалентна dpkg-scanpackages(1).
Параметр --db может использоваться для указания бинарной кэширующей БД.
Команда sources создает файл исходного индекса из дерева каталогов. Он берет заданный каталог и рекурсивно ищет в нем файлы .dsc, выдавая исходную запись на стандартный вывод для каждого. Эта команда примерно эквивалентна dpkg-scansources(1).
Если указан файл переопределения, будет выполняться поиск исходного файла переопределения с расширением .src. Опцию --source-override можно использовать для изменения исходного файла переопределения, который будет использоваться.
Команда содержимого создает файл содержимого из дерева каталогов. Он берет указанный каталог и рекурсивно ищет в нем файлы .deb и считывает список файлов из каждого файла. Затем он сортирует и записывает в стандартный вывод список файлов, соответствующих пакетам. Каталоги не записываются на выходе. Если несколько пакетов владеют одним и тем же файлом, каждый пакет в выводе отделяется запятой.
Параметр --db может использоваться для указания бинарной кэширующей БД.
Команда release создает файл Release из дерева каталогов. Он рекурсивно ищет в данном каталоге несжатые и сжатые пакеты, исходники, содержимое, компоненты и файлы значков, а также файлы Release, Index и md5sum.txt по умолчанию (APT::FTPArchive::Release::Default-Patterns). Дополнительные шаблоны имен файлов можно добавить, перечислив их в APT::FTPArchive::Release::Patterns. Затем он записывает в стандартный вывод файл Release, содержащий (по умолчанию) дайджест MD5, SHA1, SHA256 и SHA512 для каждого файла.
Значения дополнительных полей метаданных в файле Release берутся из соответствующих переменных в APT::FTPArchive::Release, например. APT::FTPArchive::Release::Origin. Поддерживаемые поля: «Происхождение», «Ярлык», «Комплект», «Версия», «Кодовое имя», «Дата», «Не автоматический», «Но автоматический апгрейд», «Получение по хэшу», «Действителен до», «Подписано», «Архитектура», «Компоненты» и «Описание».
Команда generate предназначена для запуска из сценария cron и создает индексы в соответствии с данным файлом конфигурации. Язык конфигурации предоставляет гибкие средства указания того, какие индексные файлы создаются из каких каталогов, а также предоставляет простые средства сохранения необходимых настроек.
Команда clean очищает базы данных, используемые данным файлом конфигурации, удаляя все записи, которые больше не нужны.
Команда generate использует файл конфигурации для описания создаваемых архивов. Он соответствует типичному формату конфигурации ISC, используемому в инструментах ISC, таких как bind 8 и dhcpd. apt.conf(5) содержит описание синтаксиса. Обратите внимание, что конфигурация генерации анализируется по частям, а apt.conf(5) анализируется по древовидной схеме. Это влияет только на то, как обрабатывается тег области видимости.
Конфигурация генерации состоит из четырех отдельных разделов, каждый из которых описан ниже.
Раздел Dir определяет стандартные каталоги, необходимые для размещения файлов, необходимых в процессе генерации. Этим каталогам предшествуют определенные относительные пути, определенные в последующих разделах, чтобы получить полный абсолютный путь.
Указывает корень FTP-архива, в стандартной конфигурации Debian это каталог, содержащий узлы ls-LR и dist.
Указывает расположение файлов переопределения.
Указывает расположение файлов кэша.
Указывает расположение файлов списка файлов, если параметр FileList используется ниже.
В разделе «По умолчанию» указаны значения по умолчанию и параметры, управляющие работой генератора. Другие разделы могут переопределить эти значения по умолчанию с помощью настройки для каждого раздела.
Задает схемы сжатия по умолчанию для индексных файлов пакетов. Это строка, содержащая разделенный пробелами список по крайней мере одного из компрессоров, настроенных с помощью области конфигурации APT::Compressor. По умолчанию для всех схем сжатия используется . сжатие.
Задает список расширений файлов по умолчанию, которые являются пакетными файлами. По умолчанию это .deb.
Это похоже на Packages::Compress, за исключением того, что оно управляет сжатием файлов Sources.
Задает список расширений файлов по умолчанию, которые являются исходными файлами. По умолчанию это .dsc.
Это похоже на Packages::Compress, за исключением того, что оно управляет сжатием файлов Contents.
Это похоже на Packages::Compress, за исключением того, что он управляет сжатием для основного файла Translation-en.
Определяет количество килобайт, которое необходимо удалить (и заменить жесткими ссылками) за одно выполнение. Это используется в сочетании с параметром External-Links для каждого раздела.
Задает режим всех созданных индексных файлов. По умолчанию это 0644. Все индексные файлы устанавливаются в этот режим независимо от umask.
Указывает, следует ли включать длинные описания в файл Packages или выделять их в основной файл Translation-en.
Устанавливает значения по умолчанию для разделов Дерева. Все эти переменные являются переменными подстановки, и в них строки $ (DIST), $ (SECTION) и $ (ARCH) заменены соответствующими значениями.
Устанавливает количество килобайт файлов содержимого, которые создаются каждый день. Файлы содержимого циклически перебираются, поэтому в течение нескольких дней все они будут перестроены.
Управляет количеством дней, в течение которых файл содержимого может быть проверен без изменений. Если этот предел превышен, mtime файла содержимого обновляется. Этот случай может произойти, если файл пакета изменен таким образом, что не приводит к созданию нового файла содержимого [например, переопределить редактирование]. Отсрочка разрешена в надежде, что будут установлены новые .debs, что в любом случае потребует нового файла. По умолчанию 10, единицы в днях.
Устанавливает вершину дерева каталогов .deb. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/двоичный-$ (ДУГА)/
Устанавливает вершину дерева каталогов исходных пакетов. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/источник/
Устанавливает выходной файл Packages. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/двоичный-$ (АРКА)/Пакеты
Устанавливает исходный файл вывода. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/источник/Источники
Устанавливает выходной главный файл перевода с длинными описаниями, если они не должны быть включены в файл пакетов. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/i18n/Translation-en
Устанавливает префикс пути, который заставляет символическую ссылку считаться внутренней ссылкой, а не внешней ссылкой. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/
Устанавливает выходной файл содержимого. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/Содержание-$ (АРКА). Если этот параметр приводит к тому, что несколько файлов пакетов сопоставляются с одним файлом содержимого (как это делается по умолчанию), тогда apt-ftparchive автоматически интегрирует эти файлы пакетов вместе.
Устанавливает файл заголовка для добавления перед выводом содержимого.
Устанавливает базу данных двоичного кэша для использования в этом разделе. Несколько разделов могут совместно использовать одну и ту же базу данных.
Указывает, что вместо обхода дерева каталогов apt-ftparchive должен считывать список файлов из заданного файла. Имена относительных файлов имеют префикс каталога архива.
Указывает, что вместо обхода дерева каталогов apt-ftparchive должен считывать список файлов из заданного файла. Имена относительных файлов имеют префикс каталога архива. Это используется при обработке исходных индексов.
Раздел «Дерево» определяет стандартное файловое дерево Debian, которое состоит из базового каталога, затем нескольких разделов в этом базовом каталоге и, наконец, нескольких архитектур в каждом разделе. Точный используемый путь определяется переменной подстановки каталога.
Раздел Tree принимает тег области, который устанавливает переменную $ (DIST) и определяет корень дерева (путь имеет префикс ArchiveDir). Обычно это такие настройки, как dists/bookworm.
Все настройки, определенные в разделе TreeDefault, можно использовать в разделе Tree, а также три новые переменные.
При обработке раздела Дерева apt-ftparchive выполняет операцию, аналогичную следующей:
for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j
Это разделенный пробелами список разделов, которые появляются в дистрибутиве; обычно это что-то вроде main contrib non-free non-free-firmware
Это разделенный пробелами список всех архитектур, которые отображаются в разделе поиска. Источник специальной архитектуры используется для указания того, что это дерево имеет исходный архив. Архитектура all сигнализирует о том, что специфичные для архитектуры файлы, такие как Packages, не должны включать информацию об архитектуре всех пакетов во всех файлах, поскольку они будут доступны в специальном файле.
Указывает, следует ли включать длинные описания в файл Packages или выделять их в основной файл Translation-en.
Устанавливает двоичный файл переопределения. Файл переопределения содержит информацию о разделе, приоритете и адресе сопровождающего.
Устанавливает исходный файл переопределения. Файл переопределения содержит информацию о разделе.
Устанавливает двоичный дополнительный файл переопределения.
Устанавливает исходный дополнительный файл переопределения.
Раздел bindirectory определяет двоичное дерево каталогов без специальной структуры. Тег области указывает расположение двоичного каталога, а настройки аналогичны разделу «Дерево» без переменных подстановки или параметров SectionArchitecture.
Устанавливает вывод файла Packages.
Устанавливает вывод исходного файла. Требуется хотя бы один из пакетов или источников.
Устанавливает вывод файла содержимого (необязательно).
Устанавливает двоичный файл переопределения.
Устанавливает исходный файл переопределения.
Устанавливает двоичный дополнительный файл переопределения.
Устанавливает исходный дополнительный файл переопределения.
Устанавливает кеш БД.
Добавляет путь ко всем выходным путям.
Указывает файл списка файлов.
Двоичный файл переопределения полностью совместим с dpkg-scanpackages(1). Он содержит четыре поля, разделенные пробелами. Первое поле — это имя пакета, второе — приоритет принудительного использования этого пакета, третье — раздел, в котором принудительно устанавливается этот пакет, а последнее поле — поле перестановки сопровождающего.
Общая форма поля сопровождающего:
old [// oldn]* => new
или просто,
new
Первая форма позволяет указать список старых адресов электронной почты, разделенных двойной косой чертой. Если какой-либо из них найден, то поле сопровождающего заменяется новым. Вторая форма безоговорочно заменяет поле сопровождающего.
Файл замены источника полностью совместим с dpkg-scansources(1). Он содержит два поля, разделенных пробелами. Первое поле — это имя исходного пакета, второе — секция для его назначения.
Дополнительный файл переопределения позволяет добавлять или заменять любые произвольные теги в выводе. Он имеет три столбца, первый — это пакет, второй — тег, а оставшаяся часть строки — новое значение.
Все параметры командной строки могут быть установлены с помощью файла конфигурации, в описаниях указан параметр конфигурации, который необходимо установить. Для логических опций вы можете переопределить файл конфигурации, используя что-то вроде -f-, --no-f, -f=no или несколько другие вариации.
Сгенерируйте заданную контрольную сумму. Эти параметры по умолчанию включены, если они отключены, сгенерированные индексные файлы не будут иметь полей контрольной суммы, где это возможно. Элементы конфигурации: APT::FTPArchive::Checksum и APT::FTPArchive::Index::Checksum, где Index может быть Packages, Sources или Release, а Checksum может быть MD5, SHA1, SHA256 или SHA512.
Используйте бинарную кэширующую БД. Это не влияет на команду генерации. Элемент конфигурации: APT::FTPArchive::DB.
Тихий; производит выходные данные, подходящие для регистрации, опуская индикаторы выполнения. Чем больше qs, тем больше будет тишины, максимум до 2. Вы также можете использовать -q=#, чтобы установить уровень тишины, переопределяя файл конфигурации. Элемент конфигурации: тихий.
Выполнить отвязку. Если используется параметр «Внешние ссылки», то этот параметр фактически позволяет удалить ссылки на файлы. По умолчанию он включен, и его можно отключить с помощью --no-delink. Элемент конфигурации: APT::FTPArchive::DeLinkAct.
Выполнить генерацию содержимого. Если этот параметр установлен и индексы пакетов создаются с помощью кэш-базы данных, список файлов также будет извлечен и сохранен в базе данных для последующего использования. При использовании команды generate эта опция также позволяет создавать любые файлы Contents. По умолчанию включено. Элемент конфигурации: APT::FTPArchive::Contents.
Выберите исходный файл переопределения для использования с командой sources. Элемент конфигурации: APT::FTPArchive::SourceOverride.
Сделайте кэширующие базы данных доступными только для чтения. Элемент конфигурации: APT::FTPArchive::ReadOnlyDB.
Принимать в командах пакетов и содержимого только файлы пакетов, соответствующие *_arch.deb или *_all.deb, вместо всех файлов пакетов по заданному пути. Элемент конфигурации: APT::FTPArchive::Architecture.
apt-ftparchive(1) кэширует как можно больше метаданных в cachedb. Если пакеты перекомпилируются и/или переиздаются с той же версией снова, это приведет к проблемам, поскольку будут использоваться устаревшие кешированные метаданные, такие как размер и контрольные суммы. Если эта опция включена, этого больше не произойдет, так как будет проверено, был ли файл изменен. Обратите внимание, что этот параметр по умолчанию установлен на «false», так как не рекомендуется загружать несколько версий/сборок пакета с одним и тем же номером версии, поэтому теоретически ни у кого не будет таких проблем, и поэтому все эти дополнительные проверки бесполезны.
Этот параметр конфигурации по умолчанию имеет значение «true» и должен быть установлен в «false» только в том случае, если архив, сгенерированный с помощью apt-ftparchive(1), также содержит файлы перевода. Обратите внимание, что мастер-файл Translation-en может быть создан только с помощью команды generate.
Показать краткий обзор использования.
Покажите версию программы.
Конфигурационный файл; Укажите файл конфигурации для использования. Программа прочитает файл конфигурации по умолчанию, а затем этот файл конфигурации. Если перед анализом файлов конфигурации по умолчанию необходимо задать параметры конфигурации, укажите файл с переменной среды APT_CONFIG. См. apt.conf(5) для информации о синтаксисе.
Установите параметр конфигурации; Это установит произвольный параметр конфигурации. Синтаксис: -o Foo::Bar=bar. -o и --option можно использовать несколько раз для установки разных параметров.
Чтобы создать сжатый файл Packages для каталога, содержащего двоичные пакеты (.deb):
apt-ftparchive packages directory | gzip > Packages.gz
apt.conf(5)
apt-ftparchive возвращает ноль при нормальной работе и десятичное число 100 при ошибке.
Страница ошибки APT[1]. Если вы хотите сообщить об ошибке в APT, см. /usr/share/doc/debian/bug-reporting.txt или команду reportbug(1).
Джейсон Ганторп
Команда APT
1. Страница ошибок APT: http://bugs.debian.org/src:apt