Home
Title: Find which package provides a given file in OpenBSD Author: Solène Date: 04 September 2020 Tags: openbsd Description: There is one very handy package on OpenBSD named `pkglocatedb` which provides the command `pkglocate`. If you need to find a file or binary/program and you don't know which package contains it, use pkglocate. $ pkglocate */bin/exiftool p5-Image-ExifTool-12.00:graphics/p5-Image-ExifTool:/usr/local/bin/exift ool With the result, I know that the package `p5-Image-ExifTool` will provide me the command `exiftool`. Another example looking for files containing the pattern "libc++" $ pkglocate libc++ base67:/usr/lib/libc++.so.5.0 base67:/usr/lib/libc++abi.so.3.0 comp67:/usr/lib/libc++.a comp67:/usr/lib/libc++_p.a comp67:/usr/lib/libc++abi.a comp67:/usr/lib/libc++abi_p.a qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx- clang-libc++/ qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx- clang-libc++/Info.plist.app qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx- clang-libc++/Info.plist.lib qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx- clang-libc++/qmake.conf qt4-4.8.7p23:x11/qt4,-main:/usr/local/lib/qt4/mkspecs/unsupported/macx- clang-libc++/qplatformdefs.h qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-c lang-libc++-32/ qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-c lang-libc++-32/qmake.conf qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-c lang-libc++-32/qplatformdefs.h qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-c lang-libc++/ qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-c lang-libc++/qmake.conf qtbase-5.13.2p0:x11/qt5/qtbase,-main:/usr/local/lib/qt5/mkspecs/linux-c lang-libc++/qplatformdefs.h As you can see, base sets are also in the database used by pkglocate, so you can easily find if a file is from a set (that you should have) or if the file comes from a package. ## Find which package installed a file Klemmens Nanni (kn@) told me it's possible to find which package installed a file present in the filesystem using `pkg_info` command which comes from the base system. This can be handy to know from which package an installed file comes from, without requiring pkglocatedb. $ pkg_info -E /usr/local/bin/convert /usr/local/bin/convert: ImageMagick-6.9.10.86p0 ImageMagick-6.9.10.86p0 image processing tools This tells me `convert` binary was installed by ImageMagick package.