I was dealing with a series of duplicates in my Fedora 20 installation, and was deleting them 10 at a time. It seems however that I've deleted librpm.so.3 and now I get the following message with running sudo yum update:

There was a problem importing one of the Python modules required to run yum. The error leading to this problem was:

librpm.so.3: cannot open shared object file: No such file or directory

Please install a package which provides this module, or verify that the module is installed correctly.

It's possible that the above module doesn't match the current version of Python, which is: 2.7.5 (default, Sep 25 2014, 13:57:38) [GCC 4.8.3 20140911 (Red Hat 4.8.3-7)]

If you cannot solve this problem yourself, please go to the yum faq at: http://yum.baseurl.org/wiki/Faq

Can anyone please tell me how to can fix this, and give me the steps. I'm only halfway decent with Fedora, but can follow instructions.... here's my Fedora version if helpful:

Linux localhost.localdomain 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux



The problem is that your rpm command won't work now, so even if you download the relevant package (rpm-libs) you won't be able to restore the files on your current installation.

Some options are:

  • You could try copying the file from another Fedora 20 machine.
  • You could fire up the install/live CD or USB-stick and copy the file from there (if it's the correct version)
  • Again, with the install/live CD or USB-stick (or another RPM based system) you could download the correct version of rpm-libs and extract the files (this package isn't relocatable so you can't use the --prefix option to force rpm to install it in a different location). You'll therefore need to rpm2cpio rpm-libs-<version etc>.rpm | cpio -idmv within a temporary directory. Then, copy the relevant file to your system.
| improve this answer | |
  • I have finally found my files, but when I attempt to drag them into lib64, they won't go. I see in the directory, the old one have an "X" as opposed to the "arrow".I cannot remember my su password, so I just use sudo su... can you provide me with the proper script to insert the files into the lib64 directory? Thanks. – DesignerMind Nov 10 '14 at 4:27
  • At the shell, type sudo -i and enter you user password. You'll now be root. Use cp <source> <destination> to copy it to the new destination. If you have SELinux` enabled, then follow it with restorecon <destination>. – garethTheRed Nov 10 '14 at 6:39

Do you have the build tools needed for your system? If so:

  1. Download the appropriate version from the RPM Website
  2. tar -xvjpf rpm-version.tar.bz2
  3. cd rpm-version
  4. ./configure
  5. make
  6. make install

Please note: version is the version number you decide to download.

After installing the compiled version of rpm, use rpm -i rpm to reinstall your Distribution's version of rpm then use yum. As gareth states, you have created a circular dependancy, and if you haven't installed the build-tools and fakeroot packages, you'll even be SOL with my approach.

| improve this answer | |

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.