143

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.)

2
  • 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
189

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 -F $filename

if you are searching for an exact file name or full path, or

pacman -Fx $expr

to have $expr interpreted as a regular expression.

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
2
  • 2
    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
  • 1
    In pacman v5.2 this is now just pacman -F $filename. The -s flag has been removed. – Nicholas Rhodes Nov 18 '19 at 19:35
39

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
3
  • Not bad at all. – ychaouche Jul 11 '15 at 2:04
  • 2
    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
  • worked better than the accepted solution and finally solved my problem. Thank you! – flood May 5 '20 at 16:23
35

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.

5
  • 7
    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
  • 9
    @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.