# pkgfile

pkgfile is a tool for searching files from packages in the official repositories.

## Installation

Install pkgfile from the official repositories, or pkgfile-git from the AUR.

The pkgfile database can then be synced with:

    # pkgfile -u

## Usage

To search for a package that owns the file `makepkg`:

    $ pkgfile makepkg

    core/pacman

To list all files provided by 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

## "Command not found" hook

pkgfile includes a "command not found" hook that will automatically search the official repositories, when entering an unrecognized command:

    $ abiword

    abiword may be found in the following packages:
      extra/abiword 2.8.6-7	usr/bin/abiword

To enable it in all children shells, you need to source the hook from one of your shell initialization files.

- Example for Bash:

    ~/.bashrc

    source /usr/share/doc/pkgfile/command-not-found.bash

- Example for Zsh:

    ~/.zshrc

    source /usr/share/doc/pkgfile/command-not-found.zsh

### command-not-found (AUR)

An alternative "command not found" hook is provided by the AUR package command-not-found:

    $ abiword

    The command 'abiword' is been provided by the following packages:
    abiword (2.8.6-7) from extra
    	[ abiword ]
    abiword (2.8.6-7) from staging
    	[ abiword ]
    abiword (2.8.6-7) from testing
    	[ abiword ]

To load it automatically:

    ~/.bashrc or ~/.zshrc

    [ -r /etc/profile.d/cnf.sh ] && . /etc/profile.d/cnf.sh

Categories:

- Package development
- Package management