apt-ftparchive - справочное руководство, опции, примеры команд


ИМЯ

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

Команда packages создает файл пакета из дерева каталогов. Он берет указанный каталог и рекурсивно ищет в нем файлы .deb, для каждого выдавая запись пакета в стандартный вывод. Эта команда примерно эквивалентна dpkg-scanpackages(1).

Параметр --db может использоваться для указания бинарной кэширующей БД.

sources

Команда sources создает файл исходного индекса из дерева каталогов. Он берет заданный каталог и рекурсивно ищет в нем файлы .dsc, выдавая исходную запись на стандартный вывод для каждого. Эта команда примерно эквивалентна dpkg-scansources(1).

Если указан файл переопределения, будет выполняться поиск исходного файла переопределения с расширением .src. Опцию --source-override можно использовать для изменения исходного файла переопределения, который будет использоваться.

contents

Команда содержимого создает файл содержимого из дерева каталогов. Он берет указанный каталог и рекурсивно ищет в нем файлы .deb и считывает список файлов из каждого файла. Затем он сортирует и записывает в стандартный вывод список файлов, соответствующих пакетам. Каталоги не записываются на выходе. Если несколько пакетов владеют одним и тем же файлом, каждый пакет в выводе отделяется запятой.

Параметр --db может использоваться для указания бинарной кэширующей БД.

release

Команда 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

Команда generate предназначена для запуска из сценария cron и создает индексы в соответствии с данным файлом конфигурации. Язык конфигурации предоставляет гибкие средства указания того, какие индексные файлы создаются из каких каталогов, а также предоставляет простые средства сохранения необходимых настроек.

clean

Команда clean очищает базы данных, используемые данным файлом конфигурации, удаляя все записи, которые больше не нужны.

СОЗДАНИЕ КОНФИГУРАЦИИ

Команда generate использует файл конфигурации для описания создаваемых архивов. Он соответствует типичному формату конфигурации ISC, используемому в инструментах ISC, таких как bind 8 и dhcpd. apt.conf(5) содержит описание синтаксиса. Обратите внимание, что конфигурация генерации анализируется по частям, а apt.conf(5) анализируется по древовидной схеме. Это влияет только на то, как обрабатывается тег области видимости.

Конфигурация генерации состоит из четырех отдельных разделов, каждый из которых описан ниже.

Раздел реж.

Раздел Dir определяет стандартные каталоги, необходимые для размещения файлов, необходимых в процессе генерации. Этим каталогам предшествуют определенные относительные пути, определенные в последующих разделах, чтобы получить полный абсолютный путь.

ArchiveDir

Указывает корень FTP-архива, в стандартной конфигурации Debian это каталог, содержащий узлы ls-LR и dist.

OverrideDir

Указывает расположение файлов переопределения.

CacheDir

Указывает расположение файлов кэша.

FileListDir

Указывает расположение файлов списка файлов, если параметр FileList используется ниже.

Раздел по умолчанию

В разделе «По умолчанию» указаны значения по умолчанию и параметры, управляющие работой генератора. Другие разделы могут переопределить эти значения по умолчанию с помощью настройки для каждого раздела.

Packages::Compress

Задает схемы сжатия по умолчанию для индексных файлов пакетов. Это строка, содержащая разделенный пробелами список по крайней мере одного из компрессоров, настроенных с помощью области конфигурации APT::Compressor. По умолчанию для всех схем сжатия используется . сжатие.

Packages::Extensions

Задает список расширений файлов по умолчанию, которые являются пакетными файлами. По умолчанию это .deb.

Sources::Compress

Это похоже на Packages::Compress, за исключением того, что оно управляет сжатием файлов Sources.

Sources::Extensions

Задает список расширений файлов по умолчанию, которые являются исходными файлами. По умолчанию это .dsc.

Contents::Compress

Это похоже на Packages::Compress, за исключением того, что оно управляет сжатием файлов Contents.

Translation::Compress

Это похоже на Packages::Compress, за исключением того, что он управляет сжатием для основного файла Translation-en.

DeLinkLimit

Определяет количество килобайт, которое необходимо удалить (и заменить жесткими ссылками) за одно выполнение. Это используется в сочетании с параметром External-Links для каждого раздела.

FileMode

Задает режим всех созданных индексных файлов. По умолчанию это 0644. Все индексные файлы устанавливаются в этот режим независимо от umask.

LongDescription

Указывает, следует ли включать длинные описания в файл Packages или выделять их в основной файл Translation-en.

Раздел TreeDefault

Устанавливает значения по умолчанию для разделов Дерева. Все эти переменные являются переменными подстановки, и в них строки $ (DIST), $ (SECTION) и $ (ARCH) заменены соответствующими значениями.

MaxContentsChange

Устанавливает количество килобайт файлов содержимого, которые создаются каждый день. Файлы содержимого циклически перебираются, поэтому в течение нескольких дней все они будут перестроены.

ContentsAge

Управляет количеством дней, в течение которых файл содержимого может быть проверен без изменений. Если этот предел превышен, mtime файла содержимого обновляется. Этот случай может произойти, если файл пакета изменен таким образом, что не приводит к созданию нового файла содержимого [например, переопределить редактирование]. Отсрочка разрешена в надежде, что будут установлены новые .debs, что в любом случае потребует нового файла. По умолчанию 10, единицы в днях.

Directory

Устанавливает вершину дерева каталогов .deb. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/двоичный-$ (ДУГА)/

SrcDirectory

Устанавливает вершину дерева каталогов исходных пакетов. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/источник/

Packages

Устанавливает выходной файл Packages. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/двоичный-$ (АРКА)/Пакеты

Sources

Устанавливает исходный файл вывода. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/источник/Источники

Translation

Устанавливает выходной главный файл перевода с длинными описаниями, если они не должны быть включены в файл пакетов. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/i18n/Translation-en

InternalPrefix

Устанавливает префикс пути, который заставляет символическую ссылку считаться внутренней ссылкой, а не внешней ссылкой. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/

Contents

Устанавливает выходной файл содержимого. По умолчанию $ (РАССТОЯНИЕ)/$ (РАЗДЕЛ)/Содержание-$ (АРКА). Если этот параметр приводит к тому, что несколько файлов пакетов сопоставляются с одним файлом содержимого (как это делается по умолчанию), тогда apt-ftparchive автоматически интегрирует эти файлы пакетов вместе.

Contents::Header

Устанавливает файл заголовка для добавления перед выводом содержимого.

BinCacheDB

Устанавливает базу данных двоичного кэша для использования в этом разделе. Несколько разделов могут совместно использовать одну и ту же базу данных.

FileList

Указывает, что вместо обхода дерева каталогов apt-ftparchive должен считывать список файлов из заданного файла. Имена относительных файлов имеют префикс каталога архива.

SourceFileList

Указывает, что вместо обхода дерева каталогов 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
     
Sections

Это разделенный пробелами список разделов, которые появляются в дистрибутиве; обычно это что-то вроде main contrib non-free non-free-firmware

Architectures

Это разделенный пробелами список всех архитектур, которые отображаются в разделе поиска. Источник специальной архитектуры используется для указания того, что это дерево имеет исходный архив. Архитектура all сигнализирует о том, что специфичные для архитектуры файлы, такие как Packages, не должны включать информацию об архитектуре всех пакетов во всех файлах, поскольку они будут доступны в специальном файле.

LongDescription

Указывает, следует ли включать длинные описания в файл Packages или выделять их в основной файл Translation-en.

BinOverride

Устанавливает двоичный файл переопределения. Файл переопределения содержит информацию о разделе, приоритете и адресе сопровождающего.

SrcOverride

Устанавливает исходный файл переопределения. Файл переопределения содержит информацию о разделе.

ExtraOverride

Устанавливает двоичный дополнительный файл переопределения.

SrcExtraOverride

Устанавливает исходный дополнительный файл переопределения.

Раздел BinDirectory

Раздел bindirectory определяет двоичное дерево каталогов без специальной структуры. Тег области указывает расположение двоичного каталога, а настройки аналогичны разделу «Дерево» без переменных подстановки или параметров SectionArchitecture.

Packages

Устанавливает вывод файла Packages.

Sources

Устанавливает вывод исходного файла. Требуется хотя бы один из пакетов или источников.

Contents

Устанавливает вывод файла содержимого (необязательно).

BinOverride

Устанавливает двоичный файл переопределения.

SrcOverride

Устанавливает исходный файл переопределения.

ExtraOverride

Устанавливает двоичный дополнительный файл переопределения.

SrcExtraOverride

Устанавливает исходный дополнительный файл переопределения.

BinCacheDB

Устанавливает кеш БД.

PathPrefix

Добавляет путь ко всем выходным путям.

FileList, SourceFileList

Указывает файл списка файлов.

ДВОИЧНЫЙ ФАЙЛ ПЕРЕОПРЕДЕЛЕНИЯ

Двоичный файл переопределения полностью совместим с dpkg-scanpackages(1). Он содержит четыре поля, разделенные пробелами. Первое поле — это имя пакета, второе — приоритет принудительного использования этого пакета, третье — раздел, в котором принудительно устанавливается этот пакет, а последнее поле — поле перестановки сопровождающего.

Общая форма поля сопровождающего:

old [// oldn]* => new

или просто,

new

Первая форма позволяет указать список старых адресов электронной почты, разделенных двойной косой чертой. Если какой-либо из них найден, то поле сопровождающего заменяется новым. Вторая форма безоговорочно заменяет поле сопровождающего.

ФАЙЛ ПЕРЕОПРЕДЕЛЕНИЯ ИСТОЧНИКА

Файл замены источника полностью совместим с dpkg-scansources(1). Он содержит два поля, разделенных пробелами. Первое поле — это имя исходного пакета, второе — секция для его назначения.

ДОПОЛНИТЕЛЬНЫЙ ФАЙЛ ПЕРЕОПРЕДЕЛЕНИЯ

Дополнительный файл переопределения позволяет добавлять или заменять любые произвольные теги в выводе. Он имеет три столбца, первый — это пакет, второй — тег, а оставшаяся часть строки — новое значение.

ПАРАМЕТРЫ

Все параметры командной строки могут быть установлены с помощью файла конфигурации, в описаниях указан параметр конфигурации, который необходимо установить. Для логических опций вы можете переопределить файл конфигурации, используя что-то вроде -f-, --no-f, -f=no или несколько другие вариации.

--md5, --sha1, --sha256, --sha512

Сгенерируйте заданную контрольную сумму. Эти параметры по умолчанию включены, если они отключены, сгенерированные индексные файлы не будут иметь полей контрольной суммы, где это возможно. Элементы конфигурации: APT::FTPArchive::Checksum и APT::FTPArchive::Index::Checksum, где Index может быть Packages, Sources или Release, а Checksum может быть MD5, SHA1, SHA256 или SHA512.

-d, --db

Используйте бинарную кэширующую БД. Это не влияет на команду генерации. Элемент конфигурации: APT::FTPArchive::DB.

-q, --quiet

Тихий; производит выходные данные, подходящие для регистрации, опуская индикаторы выполнения. Чем больше qs, тем больше будет тишины, максимум до 2. Вы также можете использовать -q=#, чтобы установить уровень тишины, переопределяя файл конфигурации. Элемент конфигурации: тихий.

--delink

Выполнить отвязку. Если используется параметр «Внешние ссылки», то этот параметр фактически позволяет удалить ссылки на файлы. По умолчанию он включен, и его можно отключить с помощью --no-delink. Элемент конфигурации: APT::FTPArchive::DeLinkAct.

--contents

Выполнить генерацию содержимого. Если этот параметр установлен и индексы пакетов создаются с помощью кэш-базы данных, список файлов также будет извлечен и сохранен в базе данных для последующего использования. При использовании команды generate эта опция также позволяет создавать любые файлы Contents. По умолчанию включено. Элемент конфигурации: APT::FTPArchive::Contents.

-s, --source-override

Выберите исходный файл переопределения для использования с командой sources. Элемент конфигурации: APT::FTPArchive::SourceOverride.

--readonly

Сделайте кэширующие базы данных доступными только для чтения. Элемент конфигурации: APT::FTPArchive::ReadOnlyDB.

-a, --arch

Принимать в командах пакетов и содержимого только файлы пакетов, соответствующие *_arch.deb или *_all.deb, вместо всех файлов пакетов по заданному пути. Элемент конфигурации: APT::FTPArchive::Architecture.

APT::FTPArchive::AlwaysStat

apt-ftparchive(1) кэширует как можно больше метаданных в cachedb. Если пакеты перекомпилируются и/или переиздаются с той же версией снова, это приведет к проблемам, поскольку будут использоваться устаревшие кешированные метаданные, такие как размер и контрольные суммы. Если эта опция включена, этого больше не произойдет, так как будет проверено, был ли файл изменен. Обратите внимание, что этот параметр по умолчанию установлен на «false», так как не рекомендуется загружать несколько версий/сборок пакета с одним и тем же номером версии, поэтому теоретически ни у кого не будет таких проблем, и поэтому все эти дополнительные проверки бесполезны.

APT::FTPArchive::LongDescription

Этот параметр конфигурации по умолчанию имеет значение «true» и должен быть установлен в «false» только в том случае, если архив, сгенерированный с помощью apt-ftparchive(1), также содержит файлы перевода. Обратите внимание, что мастер-файл Translation-en может быть создан только с помощью команды generate.

-h, --help

Показать краткий обзор использования.

-v, --version

Покажите версию программы.

-c, --config-file

Конфигурационный файл; Укажите файл конфигурации для использования. Программа прочитает файл конфигурации по умолчанию, а затем этот файл конфигурации. Если перед анализом файлов конфигурации по умолчанию необходимо задать параметры конфигурации, укажите файл с переменной среды APT_CONFIG. См. apt.conf(5) для информации о синтаксисе.

-o, --option

Установите параметр конфигурации; Это установит произвольный параметр конфигурации. Синтаксис: -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