RHEL6 installed wrong version of rpmforge

SUB asked:

I installed the wrong version of rpmforge for el7. Then I ran an update which installed this package on my system

python-crypto-2.6.1-1.el7.rf.x86_64

Notice the el7 but I am on rhel6. I then realized and removed the wrong repository and installed the right one for el6.

$ rpm -qa | grep rpmfor
rpmforge-release-0.5.2-2.el6.rf.x86_64

But the above process has broken the update process, which I know I could work around using --skip-broken option. How do I downgrade for the above mentioned package. I tried to uninstall and install it back again but I get this error:

Error: Trying to remove "c4ebpl", which is protected

It shows me some protected packages which can’t be removed.
Update process using sudo yum update gives me this error:

Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: libgmp.so.10()(64bit)
Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: libc.so.6(GLIBC_2.14)(64bit)
Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: python(abi) = 2.7
           Installed: python-2.6.6-52.el6.x86_64 (@el66/$releasever)
               python(abi) = 2.6
Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: libpython2.7.so.1.0()(64bit)
 You could try using --skip-broken to work around the problem

Would anyone know how to downgrade to the original packages? Is there a way to do a factory reset? Or do I need to re-install linux again?

Some things I tried:
I deleted the python-crypto.x86_64 package using this command

sudo rpm --nodeps -e python-crypto.x86_64

And the update went through. So I thought I should install the python-crypto.x86_64package now as I have the right el6 rpmforge repository. So I ran this command sudo yum install python-crypto.x86_64 but I got the same error:

Resolving Dependencies
--> Running transaction check
---> Package python-crypto.x86_64 0:2.6.1-1.el7.rf will be installed
--> Processing Dependency: python(abi) = 2.7 for package: python-crypto-2.6.1-1.el7.rf.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.14)(64bit) for package: python-crypto-2.6.1-1.el7.rf.x86_64
--> Processing Dependency: libpython2.7.so.1.0()(64bit) for package: python-crypto-2.6.1-1.el7.rf.x86_64
--> Processing Dependency: libgmp.so.10()(64bit) for package: python-crypto-2.6.1-1.el7.rf.x86_64
--> Finished Dependency Resolution
Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: libgmp.so.10()(64bit)
Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: libc.so.6(GLIBC_2.14)(64bit)
Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: python(abi) = 2.7
           Installed: python-2.6.6-52.el6.x86_64 (@el66/$releasever)
               python(abi) = 2.6
Error: Package: python-crypto-2.6.1-1.el7.rf.x86_64 (rpmforge)
           Requires: libpython2.7.so.1.0()(64bit)
 You could try using --skip-broken to work around the problem

I don’t know why its trying to find the el7 package? I have these libraries in my machine.

$ rpm -qa | grep rpmfor
rpmforge-release-0.5.3-1.el7.rf.x86_64

My answer:


First you need to install the correct rpmforge-release package. Download it and use rpm -U --oldpackage to install it over the wrong package.

Second, you need to clean the cached yum metadata that it had. Use yum clean all to get rid of everything.

Third, use yum distro-sync to downgrade any packages that were installed for the wrong distribution. (And note that this will also upgrade any out-of-date packages.)


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.