Поиск файлов и пакетов
Репозитории для SelectOS содержат списки всех файлов внутри пакетов.
Команда apt-file update
загружает файлы с этими списками:
Contents-архитектура.gz
Contents-udeb-архитектура.gz
.
По умолчанию эта команда загружает файлы изменений Contents*.pdiff
, чтобы минимизировать общий объём скачиваемых данных. Подробнее об инкрементальных обновлениях — в разделе Инициализация источников.
Команда apt-file list пакет
перечислит все файлы, поставляемые в заданном пакете.
Команда apt-file search запрос
выполняет поиск пакетов по пользовательскому запросу:
$ apt-file search bin/axi-cache
apt-xapian-index: /usr/bin/axi-cache
Рекомендуется регулярно обновлять данные, чтобы поиск давал актуальные результаты.
Следующая запись в /etc/crontab
обновляет данные каждую неделю:
@weekly root test -x /usr/bin/apt-file && /usr/bin/apt-file update >> /dev/null 2>&1
Шаблоны apt-patterns
С помощью apt-patterns можно писать запросы для работы с пакетами с использованием готовых регулярных выражений.
Регулярные выражения позволяют отфильтровать пакеты по нужным критериями и совершать операции только над ними.
Например:
apt remove ?garbage
— удалит все пакеты, которые устанавливаются автоматически и больше не нужныapt purge ?config-files
- очистит все пакеты, в которых остались только файлы конфигурации.
Конструкция вида ?garbage
или ?config-files
, которая идет после команды, — это регуляр ное выражение, которое распознается apt в соответствии с правилами, описанными в руководстве:
man apt-patterns
(7)man glob
(7)
Некоторые шаблоны для выбора пакетов:
?architecture(архитектура)
- пакеты с указанной архитектурой,?automatic
— пакеты, которые были установлены автоматически,?broken
— пакеты с нарушенными зависимостями,?config-files
— пакеты, которые не установлены полностью и имеют только остаточные файлы конфигурации,?essential
— пакеты, в файле управления которых установлено значение Essential: yes,?exact-name(пакет)
— пакеты с указанным именем,?garbage
— пакеты, которые можно удалить автоматически,?installed
— пакеты, которые в данный момент установлены,?name(регулярное выражение)
— пакеты, имя которых соответствует заданному регулярному выражению,?obsolete
— пакеты, которых больше нет в репозиториях,?upgradable
— пакеты, которые можно обновить,?virtual
— виртуальные пакеты без версии, существующие, в рамках ссылки в архиве из-за имеющихся зависим остей.
Шаблоны можно комбинировать в более сложные выражения:?and(шаблон, шаблон)
Команды dpkg и cruft
Команда dpkg -L пакет
выводит список всех файлов пакета, но работает только для установленных пакетов.
Команда dpkg -S файл
найдет пакет, которому принадлежит локальный файл.
Команда cruft
из пакета cruft-ng
перечислит все локальные файлы, не принадлежащие ни одному установленному пакету.