pkgfile (Русский)
Ссылки по теме
pkgfile — это инструмент для поиска файлов внутри пакетов из официальных репозиториев.
Contents
Установка
Установите pkgfile из официальных репозиториев или pkgfile-gitAUR из AUR.
Для синхронизации базы данных pkgfile используйте команду:
# pkgfile -u
Использование
Чтобы найти пакет, который владеет файлом makepkg
:
$ pkgfile makepkg
core/pacman
Чтобы отобразить все файлы из пакета archlinux-keyring:
$ pkgfile -l archlinux-keyring
core/archlinux-keyring usr/ core/archlinux-keyring usr/share/ core/archlinux-keyring usr/share/pacman/ core/archlinux-keyring usr/share/pacman/keyrings/ core/archlinux-keyring usr/share/pacman/keyrings/archlinux-revoked core/archlinux-keyring usr/share/pacman/keyrings/archlinux-trusted core/archlinux-keyring usr/share/pacman/keyrings/archlinux.gpg
Это аналогично pacman -Ql
(смотрите pacman (Русский)#Запросы к базам данных пакетов), за тем исключением, что не требует установки пакета.
Команда не найдена
pkgfile добавляет хук "command not found" для Bash и Zsh, который автоматически выполняет поиск в официальных репозиториях, если была введена неизвестная команда:
$ abiword
abiword may be found in the following packages: extra/abiword 2.8.6-7 usr/bin/abiword
Чтобы это работало во всех дочерних оболочках, необходимо прописать этот хук в файле инициализации вашей командной оболочки.
Bash
~/.bashrc
source /usr/share/doc/pkgfile/command-not-found.bash
Zsh
~/.zshrc
source /usr/share/doc/pkgfile/command-not-found.zsh
Fish
pkgfile
не предоставляет хук специально для Fish, однако, вы можете создать собственную функцию command-not-found
, которая будет запускаться каждый раз, когда Fish обнаруживает неизвестную команду:
~/.config/fish/functions/command-not-found.fish
function command-not-found set cmd $argv[2] set pkgs (pkgfile -b -v $argv 2>/dev/null) if test -n $pkgs echo "$cmd may be found in the following packages:" echo "$pkgs" return 0 end return 127 end
Автоматические обновления
pkgfile поставляется вместе со службой и таймером systemd для автоматической синхронизации базы данных. Для включения автоматического обновления включите таймер pkgfile-update.timer
.
По умолчанию, база данных обновляется ежедневно. Чтобы это изменить, скопируйте /usr/lib/systemd/system/pkgfile-update.timer
в /etc/systemd/system/pkgfile-update.timer
и отредактируйте копию файла под ваши нужды.