# pkgfile (Русский)

Ссылки по теме

- pacman (Русский)

Состояние перевода: На этой странице представлен перевод статьи Pkgfile. Дата последней синхронизации: 2015-02-17. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

pkgfile — это инструмент для поиска файлов внутри пакетов из официальных репозиториев.

## Установка

Установите 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` и отредактируйте копию файла под ваши нужды.

Categories:

- Package development (Русский)
- Package management (Русский)
- Русский