pkgfile is a tool that tells you which package owns a specified file or which files a given package provides.
Then update the file database, as root:
# pkgfile --update
$ pkgfile makepkg #Search for a package that contains a file named "makepkg".
core/pacman #Your searched file is in thepackage from the [core] repository.
$ pkgfile --list core/archlinux-keyring #List all files provided by thepackage from the [core] repository.
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, if you enter an unrecognized command.
To enable it in all children shells, you need to source the hook from one of your shell initialization files.
- Example for Bash:
- Example for Zsh:
- Bash#The_"command_not_found"_hook - A section comparing and AUR