Issue
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_64
package 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
Solution
Solution from @Michael Hapton on this link
Here is the solution. I take no credit for it.
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.)
Answered By - SUB