Skip to main content

How do I find which package contains a certain file?

What to do if you need to install or build a package on Linux and it wants a missing file/library/etc...

Have you ever tried to install package or some vendor software, only to find that the install fails due to a missing library? Here is a collection of methods for finding the package that contains the missing file.

Red Hat Enterprise Linux/CentOS

Using yum

yum whatprovides /full/path/to/missing/filename
Note: In all of these processes, fill in the actual filename and path for which you are looking.

Using rpmfind site

  1. Browse to http://rpm.pbone.net/index.php3/stat/2/simple/2
  2. Enter filename or /full/path/to/missing/filename in the search box (start with just the filename)
  3. Check boxes of rpm-based distributions in which you want to search
  4. Click search

Debian/Ubuntu

apt-file

sudo aptitude install apt-file
sudo apt-file update
apt-file search filename
or
apt-file search /full/path/to/missing/filename

Using Debian's website

  1. Browse to http://www.debian.org/distrib/packages
  2. Scroll to the bottom to the section called "Search the contents of packages"
  3. Enter a single argument into the search field, either filename or /full/path/to/missing/filename
  4. Select your distribution
  5. Select the machine architecture for which you need the missing file
  6. Click "Search"

Comments

Popular posts from this blog

Fixing SSH connection problems in EGit in Eclipse

Note: I posted a version of this on Stack Overflow. Errors can occur when there is an underlying SSH authentication issue, like having the wrong public key on the git remote server or if the git remote server changed its SSH host key. Often the an SSH error will appear as: " Invalid remote: origin: Invalid remote: origin" Eclipse will use the .ssh directory you specify in Preferences -> General -> Network Connections -> SSH2 for its ssh configuration. Set it "{your default user directory}.ssh\" . To fix things, first you need to determine which ssh client you are using for Git. This is stored in the GIT_SSH environmental variable. Right-click on "Computer" (Windows 7), then choose Properties -> Advanced System Settings -> Environment Variables. If GIT_SSH contains a path to plink.exe, you are using the PuTTY stack. To get your public key, open PuTTYgen.exe and then load your private key file (*.ppk). The listed public key sho...

How the find the Active Directory Domain Controllers listed in DNS on Linux...

Assumptions: You have the "host" utility from BIND. You can do a zone transfer from the local DNS server Your Active Directory admins have properly configured DNS for Active Directory If you have the above, use the following command: host -t srv -l your.active.directory.dns.domain | grep _kerberos._tcp.*._sites.dc._msdcs.your.active.directory.dns.domain Replace your.active.directory.dns.domain with your actual AD DNS domain.

How do I dual-boot Ubuntu 18.04 on a 2011 Mac Mini?

Machine Specs: Mac Mini (Mid 2011), Macmini5,2 Core i7 16 GB RAM (2x8 GB) AMD Radeon HD 6630M 256MB 27-inch Apple Thunderbolt Display 512 GB SSD Running macOS 10.13 High Sierra Caution: This process can result in data loss. If you have personal data on the Mac Mini before starting, back it up first. Twice! (One is none. Two is one. ~ U.S. Navy Seal saying).  Also, mistyping in the parts of this process may brick your Mac Mini. You have been warned. If in doubt, stop working and do research on Google until you understand what's going on in the step. If you find an error, please leave a comment. I will update. Note: This is process I figured out in lieu of booting the Ubuntu install with EFI via refind. Via the refind boot method, I would constantly get: 10:39:07 kernel: Couldn't get size: 0x800000000000000e 10:39:07 kernel: MODSIGN: Couldn't get UEFI db list 10:39:07 kernel: Couldn't get size: 0x800000000000000e The error seems to be relate...