Перейти к содержимому

Документация по BlackArch на русском языке

Инструкции, советы, новые программы

Меню
  • Главная
  • Список инструментов
  • HackWare
Меню

Как узнать, в каком пакете находится файл

Опубликовано в 01.09.202018.02.2021 от Alexey

Иногда название нужной утилиты не совпадает с названием пакета — особенно такое бывает когда один пакет содержит несколько программ. В результате возникает проблема — найти пакет, в котором присутствует нужный исполнимый файл или файл заголовка (если вы получили ошибку при компиляции из-за отсутствия определённого файла).

Эта статья поможет вам — в ней рассказано, как искать в пакетах по имени файла. Причём сразу по всем пакетам — независимо от того, установлены они или нет.

Утилита 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%)
  • Решение проблемы «Warn about old perl modules» - предупреждение о старых модулях Perl (RANDOM - 50%)

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo


Поиск


Свежие записи

  • Ошибка «error: failed to commit transaction (conflicting files)» (РЕШЕНО)
  • Как настроить Python в качестве CGI модуля в Apache на Arch Linux (Manjaro, BlackArch)
  • PHP Warning: PHP Startup: imap: Unable to initialize module (РЕШЕНО). Как установить imap модуль для PHP в Arch Linux
  • Как обновить загрузчик GRUB в Arch Linux и производных дистрибутивах (Manjaro, BlackArch)
  • Ошибка «error: failed to commit transaction (invalid or corrupted package)» (РЕШЕНО)

Свежие комментарии

  • Анастасия к записи Как установить и настроить OpenVPN в ArchLinux / BlackArch
  • Alexey к записи Как в Arch Linux найти все программы, установленные из AUR
  • МаксимК к записи Как в Arch Linux найти все программы, установленные из AUR
  • Vova к записи Установка LAMP (Linux, Apache, MySQL/MariaDB, PHP8 и phpMyAdmin) в Arch Linux / BlackArch
  • Furi к записи Приложение в .AppImage не запускается в Arch Linux (РЕШЕНО)




Рубрики

  • Sniffing и Spoofing
  • Архив
  • Без рубрики
  • Взлом Wi-Fi сетей
  • Инструкции
  • Новости
  • Общая информация/новости
  • Разведка
  • Справка и подсказки




Яндекс.Метрика
© 2023 Документация по BlackArch на русском языке | На платформе Minimalist Blog Тема WordPress