81

I'm looking for a package that provides a specific binary, so I can install it. how can I search to find out what packages provide this binary? (note: I know there's at least one tool that does this, but I have forgotten its name.)

  • Also the binary I'm looking for is /usr/sbin/ipset if someone wanted to tip me off on what package provides it even though they don't know the answer to the question. – xenoterracide Jun 12 '11 at 14:59
  • Gilles answer is the correct one. Regarding ipset, I was only able to find it in AUR aur.archlinux.org/packages.php?ID=16553 – jasonwryan Jun 12 '11 at 18:46
100

Since pacman 5.0, there is built-in functionality for searching the database with the -F option. First update the database:

sudo pacman -Fy

Then you can see which package contains $filename with

pacman -Fs $filename

or

pacman -Fos $path

to search for a complete path.

Since you knew you were looking for an equivalent of apt-file, you could have looked it up in the Pacman Rosetta.

Alternatively, you can use pkgfile. Install it with pacman -S pkgfile, then run

sudo pkgfile -u

to update the database. To see what package contains $filename, run

pkgfile $filename
  • 1
    Thanks for the Rosetta stone! I'll be using that for rpm distros as well as for pacman. – jpaugh May 7 '18 at 21:20
  • 2
    It is worth noting that pacman -Fs searches by basename, if you want to search the full path use pacman -Fos. Example: pacman -Fs /usr/bin/mount.cifs returns nothing, where as pacman -Fs mount.cifs correctly returns cifs-utils as does pacman -Fos /usr/bin/mount.cifs – Dev May 16 '18 at 13:54
24

the google way:

site:www.archlinux.org/packages/ bin/filename

and in case it is in AUR instead of an official package:

site:aur.archlinux.org/packages/ bin/filename
  • Not bad at all. – ychaouche Jul 11 '15 at 2:04
  • Great tip, this seems to yield good results. I created a "search engine" in Chrome with this URL: https://www.google.com/search?q=site%3Awww.archlinux.org%2Fpackages%2F+%s. – Borek Bernard Jul 5 '18 at 10:31
19

From ArchWiki:

$ pacman -Qo df

This will yield the owning package of the program df (at the time of writing, this is coreutils).

-Qo only operates on installed packages and their programs.

You can to see more arguments in querying package databases.

  • 4
    That only tells you what package owns a file, it won't tell you what you need to install to get it. – David C. Bishop May 25 '13 at 10:09
  • @DavidC.Bishop Is that not the very same thing? – Victor May 1 '14 at 0:19
  • 5
    @Victor No, the package must be installed on the system already in order to query it. – David C. Bishop May 2 '14 at 1:31
  • @DavidC.Bishop Ah I see, you meant "what installed package owns a fle". Thanks! – Victor May 2 '14 at 14:52
  • 1
    Please edit your post to reflect what was discussed in the comments. – Pompei2 Nov 4 '17 at 14:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.