Иногда название нужной утилиты не совпадает с названием пакета — особенно такое бывает когда один пакет содержит несколько программ. В результате возникает проблема — найти пакет, в котором присутствует нужный исполнимый файл или файл заголовка (если вы получили ошибку при компиляции из-за отсутствия определённого файла).
Эта статья поможет вам — в ней рассказано, как искать в пакетах по имени файла. Причём сразу по всем пакетам — независимо от того, установлены они или нет.
Утилита pkgfile ищет в метаданных .files, созданных repo-add, чтобы получить информацию о файлах в пакетах. По умолчанию указанная цель считается именем файла и pkgfile вернёт пакеты, содержащие этот файл. Репозитории, в которых ищет pkgfile, определяются теми, которые включены в /etc/pacman.conf.
Для установки программы выполните команду:
sudo pacman -S pkgfile
Обновите сохранённые файлы метаданных.
sudo pkgfile --update
К примеру, мне нужно узнать, в каком пакете находится файл finger. Тогда я запускаю следующую команду:
pkgfile finger
Как можно увидеть, pkgfile прекрасно справилась со своей задачей — исполнимый файл finger находится в пакете netkit-bsd-finger в репозитории blackarch.
С помощью опции -l, --list можно посмотреть содержимое любого пакета:
pkgfile -l netkit-bsd-finger
Целью считается имя пакета, а не имя файла, и возвращается содержимое указанного пакета. Это позволяет использовать синтаксис стиля репо/пакет (например, "core/pacman"), чтобы ограничить диапазон поиска, но только когда --list используется без параметров --glob или --regex.
Эвристика поиска совпадений
В режиме --search и без опции --regex или --glob, pkgfile попытается сопоставить предоставленную цель как точное имя файла. Если цель содержит символ '/', то будет сделана попытка найти совпадение по полному пути. При включённом поиске --regex и --glob, pkgfile всегда будет соответствовать полному пути.
В режиме --list и без опции --regex или --glob, pkgfile попытается сопоставить предоставленную цель как точное имя пакета. Если цель содержит символ '/', текст перед косой чертой будет считаться репозиторием, и поиск будет ограничен только этим репозиторием.
Все опции pkgfile
Использование:
pkgfile [ОПЦИИ] ЦЕЛЬ
Опции:
Действия: -l, --list показать содержимое пакета -s, --search поиск пакета, содержащего цель (по умолчанию) -u, --update обновить репозиторий списков файлов Совпадение: -b, --binaries возвращать только файлы, содержащиеся в директории bin -d, --directories поиск по именам директорий -g, --glob включить совпадения с подстановочными символами -i, --ignorecase регистронезависимый поиск -R, --repo <РЕПОЗИТОРИЙ> поиск в указанном репозитории -r, --regex включить поиск по регулярным выражениям Вывод: -q, --quiet выводить меньше при листинге -v, --verbose выводить больше -w, --raw отключить выравнивание вывода -0, --null окончанием вывода является символ null Загрузка: -z, --compress[=ТИП] сжать загруженные репозитории Общие: -C, --config <ФАЙЛ> использовать альтернативный конфигурационный файл (по умолчанию: /etc/pacman.conf) -D, --cachedir <ДИРЕКТОРИЯ> использовать альтернативную директорию кэширования (по умолчанию: /var/cache/pkgfile) -h, --help показать справку и выйти -V, --version показать версию и выйти
Смотрите также «Как в Arch Linux (BlackArch, Manjaro) посмотреть информацию о пакете».
Близкие статьи
- Pacman: работа с пакетами в BlackArch (перевод справки и мануала) (100%)
- Практические примеры использования pacman (100%)
- Графический интерфейс и цветной вывод pacman (100%)
- Как установить программу из Arch User Repository (AUR) – пользовательского репозитория Arch (100%)
- Автоматическая установка и обновление пакетов AUR (100%)
- Настройка cron в Arch Linux / BlackArch (RANDOM - 50%)