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


ИМЯ

apt-file -- утилита поиска пакетов APT -- интерфейс командной строки

СИНТАКСИС

apt-file [options] search pattern

apt-file [options] show package

ОПИСАНИЕ

apt-file — это инструмент командной строки для поиска файлов в пакетах для системы управления пакетами APT.

Для запуска поиска необходимы некоторые действия:

find

Псевдоним для поиска.

list

Перечислите содержимое пакета. Это действие очень похоже на команду dpkg -L, за исключением того, что пакет не нужно устанавливать или скачивать. По умолчанию действие list интерпретирует свой шаблон так, как если бы был указан --fixed-string.

list-indices

Перечислите известные индексы контента и их статус в удобочитаемом формате. Эти индексы можно искать с помощью параметра -I (если он включен и после получения индексов). Выходные данные могут быть изменены без предварительного уведомления и поэтому не подходят для использования/автоматизации сценария. Для машиночитаемых форматов (например, автоматизации) используйте дамп apt-config (ищите параметры, начинающиеся с Acquire::IndexTargets) и apt-get indextargets для проверки кеша (ищите записи с полем Идентификатор, начинающимся с Contents-). Обратите внимание, что отдельные записи в sources.list могут переопределять глобальное значение по умолчанию. Обратитесь к sources.list (5) для получения дополнительной информации о расширенной настройке файлов sources.list.

search

Найдите, в какой пакет включен файл. Возвращается список всех пакетов, содержащих шаблон шаблона. Поскольку файлы Contents не содержат каталогов, шаблон должен соответствовать (частью) имени файла. По умолчанию действие search интерпретирует свой шаблон так, как если бы было указано --substring-match.

show

Псевдоним для списка.

update

Это действие просто вызывает apt update или apt-get update (в зависимости от того, доступен ли tty). Единственное преимущество использования этого перед обычным apt update или apt-get update напрямую — это случай, когда вы настроили конкретную конфигурацию apt-файла (через Dir::Etc::apt-file-main). В этом случае указанная конфигурация будет включена автоматически.

ПАРАМЕТРЫ

Доступны следующие варианты:

-a, --architecture architecture[,...]

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

-c, --config-file APT config-file

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

-D, --from-deb

Использовать содержимое заданных архивов .deb в качестве шаблонов. Полезно для поиска конфликтов файлов с другими пакетами. Подразумевает -Ф.

-f, --from-file

Читать шаблоны из заданного файла (файлов), по одному в строке. Использовать - как имя файла для стандартного ввода. Если файлы не указаны, то список будет прочитан со стандартного ввода. Это намного быстрее, чем многократный вызов apt-file.

--filter-origins origin[,...]

Ищите только индексы из перечисленных источников (например, Debian). Этот фильтр соответствует имени, указанному в поле Происхождение в файле выпуска. Если установлено значение «*», этот фильтр будет отключен (в основном полезно для переопределения параметра в файле конфигурации). Псевдоним параметра конфигурации APT: apt-file::Search-Filter::Origin

--filter-suites suite[,...]

Ищите только индексы из перечисленных наборов или кодовых имен (например, нестабильный). Этот фильтр сопоставляется с именем, указанным в полях Codename и Suite в файле Release. Это означает, что либо нестабильный пакет, либо sid будут соответствовать нестабильному пакету Debian. Если установлено значение «*», этот фильтр будет отключен (в основном полезно для переопределения параметра в файле конфигурации). Псевдоним параметра конфигурации APT: apt-file::Search-Filter::Suite

-F, --fixed-string

Не расширяйте шаблон поиска общими символами в начале и в конце шаблона. Это значение по умолчанию для действий show и list.

--index-names type[,...], -I type[,...]

Искать только в индексах с заданным именем(ями). Если установлено специальное значение ALL (с учетом регистра), поиск выполняется по всем индексам apt-file. Имена должны совпадать с одним или несколькими идентификаторами, используемыми в конфигурации APT (минус начальное содержание-). Пример, если в конфигурации есть следующие фрагменты:

            Acquire::IndexTargets::deb::Contents-deb { ... };
            Acquire::IndexTargets::deb-src::Contents-dsc { ... };
            Acquire::IndexTargets::deb::Contents-udeb { ... };
            Acquire::IndexTargets::deb::Contents-deb-legacy {
               # Explicitly named to "Contents-deb"
               Identifier "Contents-deb";
               ...;
            };

Затем apt-file распознает deb, dsc и udeb как имена индексов. Этот параметр по умолчанию равен значению параметра конфигурации apt-file::Index-Names apt (или deb, если он не указан).

-i, --ignore-case

Игнорировать регистр при поиске шаблона.

-l, --package-only

Отображать только имя пакета; не отображать имена файлов.

--stream-results

Это специальная опция, полезная для работы с поисковыми запросами, дающими большое количество совпадений (более 10 000) или/и автоматической обработкой результатов. Отключите логику дедупликации и немедленно выдайте результат при обнаружении совпадения. Это может значительно снизить требования к памяти для apt-файла при обработке поиска с большим количеством совпадений. Это также уменьшит время до выдачи первого совпадения, что может быть полезно, если совпадения можно обрабатывать по мере их обнаружения, а потребитель может обрабатывать повторяющиеся совпадения.

-o, --option APT::Option=Value

Установите параметр конфигурации; Это установит произвольный параметр конфигурации. Синтаксис: -o APT::Option=Value. -o и --option можно использовать несколько раз для установки разных параметров. Этот параметр может использоваться для перезаписи других параметров командной строки (например, -o apt-file::Search-Filter::Origin=Debian фактически аналогичен --filter-origins Debian). Обратите внимание, что параметры конфигурации, переданные через этот параметр, также будут переданы всем инструментам APT, вызываемым apt-file.

--substring-match

Соответствует, если заданный шаблон поиска является подстрокой пути или пакета. Это значение по умолчанию для действий search и find.

-v, --verbose

Запустите apt-файл в подробном/отладочном режиме.

-x, --regexp

Рассматривайте шаблон как регулярное выражение (perl). Подробнее см. perlreref (1). Без этой опции шаблон обрабатывается как литеральная строка для поиска. Имейте в виду, что этот вариант может быть довольно медленным. Если производительность является проблемой, подумайте о том, чтобы дать apt-файлу слишком много совпадений с шаблоном, не являющимся регулярным выражением, и направьте вывод в perl -ne '//'. Это позволяет apt-file использовать больше оптимизаций и оставляет меньше работы более медленным регулярным выражениям.

-h, --help

Отображение краткого экрана справки.

ФАЙЛЫ КОНФИГУРАЦИИ

Команда apt-file зависит от конфигурации APT. Примечательно, что конфигурация по умолчанию позволяет apt извлекать файлы содержимого по умолчанию во время вызова apt update.

Информацию о том, как настроить APT для извлечения большего или меньшего количества файлов содержимого, см. в /usr/share/doc/apt-file/README.md.gz.

Следующие файлы особенно интересны:

/etc/apt/apt-file.conf

Обратите внимание, что этот путь на самом деле можно настроить, изменив значение конфигурации APT с именем Dir::Etc::apt-file-main. Указанное значение является просто значением по умолчанию для этой опции. Если этот файл присутствует, apt-file будет читать этот файл после всех файлов конфигурации APT по умолчанию. Любой файл конфигурации -c или параметр (-o) будут оцениваться перед этим файлом (и могут переопределять установленные в нем параметры). Файл также будет передан всем инструментам APT, вызываемым apt-file.

/etc/apt/apt.conf.d/50apt-file.conf

Выбирает файлы содержимого для загрузки. Обратите внимание, что apt-file распознает только цели Acquire, которые начинаются с Contents-.

Специальные конфигурации, аналогичные apt-файлу 2

Вот некоторые рабочие процессы, связанные с apt-file 2, и способы (почти) их эмуляции с помощью apt-file 3. Они задокументированы как начало точка для людей, которые к ним привязаны.

Эмуляция может быть не идеальной для вас из коробки. Патчи приветствуются, чтобы поддерживать актуальность примеров, пока примеры остаются тривиальными.

  • Сделайте так, чтобы apt-file update извлекал только файлы содержимого. Если вы привыкли к тому, что apt update не извлекает файлы содержимого, вы можете запустить / usr/share/doc/apt-file/examples/apt-file-2-update.sh. Этот скрипт настроит apt и apt-file соответствующим образом после максимальных усилий. Прочтите получившийся файл /etc/apt/apt-file.conf.

  • Creating/using user caches Previous versions of apt-file had a --cache option, which could be used to denote a directory to store the Contents files. This can be emulated by doing:

                 # Setup
                 $ mkdir -p ~/.cache/apt-file ~/.config
                 $ touch ~/.cache/apt-file/dpkg-status
                 $ sed '/^Dir::State/ d; /^Dir::Cache/ d;' \
                   /usr/share/doc/apt-file/examples/apt-file.conf \
                   > ~/.config/apt-file.conf
                 $ cat <> ~/.config/apt-file.conf
               Dir::State "$HOME/.cache/apt-file";
               Dir::Cache "$HOME/.cache/apt-file";
               Dir::State::status "$HOME/.cache/apt-file/dpkg-status";
               EOF
    
                 # Update the cache
                 $ apt-file -c ~/.config/apt-file.conf update
    
                 # Search using the cache
                 $ apt-file -c ~/.config/apt-file.conf show apt-file
    
                 # Removal of the cache + config
                 $ rm -fr ~/.cache/apt-file ~/.config/apt-file.conf

    (You will probably want to add an alias apt-file in your ~/.bashrc) Please read the resulting ./apt-file-user-cache.conf.

ОШИБКИ, ПРИЧУДЫ

Есть некоторые известные проблемы или особенности, о которых следует помнить.

  • Файлы содержимого не содержат начальную косую черту в путях. Это означает, что /bin/ls указан как bin/ls в файле содержимого. Если вы ищете что-то в каталоге верхнего уровня, зачастую лучше опустить косую черту. Алгоритм поиска попытается обойти косую черту в начале, но не во всех случаях. В качестве обходного пути попробуйте поставить косую черту в начале регулярных выражений. Например, используйте /(?:usr/bin/vim|sbin/lvm) вместо /usr/bin/vim|/sbin/lvm.

  • Когда в sources.list добавлена новая строка, а apt update не запущен, apt-file не выводит предупреждающее сообщение.

  • По умолчанию apt-file предполагает, что файлы содержимого не содержат описательный заголовок (объясняющий, что такое файл и как его интерпретировать). Однако некоторые инструменты генерировали их с таким заголовком (например, для старых версий файлов Contents для архива Debian или файлов Contents, сгенерированных reprepro до версии 5.2.0). Если вы ищете такие файлы, вам нужно установить для параметра apt-file::Parser::Check-For-Description-Header значение true (например, в /etc/apt/apt.conf. d/50apt-file.conf), чтобы apt-file правильно отфильтровывал заголовки во избежание ложных совпадений. Причина, по которой это не используется по умолчанию, заключается в том, что это требует двойных накладных расходов, в то время как большинство распространенных файлов содержимого больше не имеют заголовка. (подробнее см. № 881405).

  • Не во всех репозиториях APT есть файлы содержимого. Примечательно, что распространенные установочные носители (компакт-диски и т. д.) могут не включать их для экономии места. Конфигурация по умолчанию с помощью apt-file помечает файлы содержимого как необязательные и просто не выполняет поиск в файлах содержимого в таких репозиториях.

КОДЫ ВЫХОДА

apt-file имеет следующие определенные коды выхода, которые можно использовать для сценариев.

  1. apt-file успешно возвращен. Если команда была поиском, был хотя бы один результат.

  2. apt-file успешно завершил поиск, но не дал результатов.

  3. Произошла ошибка (включая недопустимые/конфликтующие параметры пользователя).

  4. apt-file не может выполнить команду, так как кеш пуст. Убедитесь, что в конфигурации APT включены индексы, и запустите apt update, чтобы получить их.

  5. apt-file не может выполнить команду, так как в кеше нет файлов, соответствующих ограничениям. Либо измените ограничения (например, --index-names), либо настройте apt для получения соответствующих файлов и запустите apt update.

  6. Произошла внутренняя ошибка/неперехваченное исключение в apt-файле. Сообщите об ошибке в apt-file.

Любой другой код выхода зарезервирован для использования в будущем.

СМОТРИТЕ ТАКЖЕ

apt (1), apt-cache (8), apt.conf (5)

The APT users guide in /usr/share/doc/apt/

The example config in /usr/share/doc/apt-file/examples

The README at /usr/share/doc/apt-file/README.md.gz