How to search for a file in apk packages

18,382

Solution 1

You have three ways basically.

First: The package should be installed and you need to specify the full path :

apk info --who-owns /path/to/the/file

Second: Use the pkgs.alpinelinux.org website

Third: Use the api.alpinelinux.org API by filtering the json output. For this you need a json parser like jq:

apk add jq

then use the API with the instructions provided here

UPDATE on 2022-04-07

I've released a tiny utility that allows to search via CLI what can be found on pkgs.alpinelinux.org website: https://github.com/fcolista/apkfile

.: Francesco

Solution 2

You're looking for the equivalent of Debian's apt-file for Alpine. Searching for that yields apk-file.

Basically apt-file but for alpine.

Solution 3

Example looking for file telnet:

enter image description here

Share:
18,382

Related videos on Youtube

mike
Author by

mike

Updated on September 18, 2022

Comments

  • mike
    mike almost 2 years

    I would like to know, given a binary's name, which package I should install on Alpine Linux.

    How can I do that?

  • Att Righ
    Att Righ over 7 years
    apk info seems to be closer to dpkg -S. In my case I'm trying to answer the question "What package provides this binary that I know the name of", rather than where does this pre-existing file come from.
  • Att Righ
    Att Righ over 7 years
    That's what I'm after. It appears that apk-file is not an alpine package, you can install it with go get github.com/jessfraz/apk-file (it happily runs on non alpine systems). The binary is likely static so can probably be copied into docker containers etc.
  • Francesco Colista
    Francesco Colista over 7 years
    therefore, apk info --who-owns /with/th/full/path is the tool if you have the package installed, otherwise from a CLI is not possible. You should check [pkgs.alpinelinux.org/contents] (pkgs.alpinelinux.org/contents) website. You write the binary name there, and it returns the package that contains that binary.
  • Francesco Colista
    Francesco Colista almost 7 years
    apt-file basically parses pkgs.alpinelinux.org website...so using a JSON decode as i wrote before would be better, since does not need bloated software to reach the same goal.
  • Elouan Keryell-Even
    Elouan Keryell-Even about 6 years
    Using apk info --who-owns, how do you do if you don't know the file's full path?
  • Francesco Colista
    Francesco Colista about 6 years
    No, you can't as yet...sorry
  • Rolf
    Rolf about 4 years
    why is --who-owns undocumented?
  • Francesco Colista
    Francesco Colista about 4 years
    It's documented. Read better the output of "apk info --help"
  • x-yuri
    x-yuri about 4 years
    Indeed, you can see that with -d option. And it doesn't strip whitespaces. And for some reason with --arch it doesn't display all the results.