I am trying to install keystone (an OpenStack component) on a 64 bit version of RHEL v. 7. I haven't done this before.
I run this:
yum install openstack-keystone python-keystoneclient
I see this at the end:
--> Finished Dependency Resolution Error: Package: python-pycadf-0.6.0-2.el7.centos.noarch (openstack-juno) Requires: python-webob >= 1.2.3
Error: Package: python-eventlet-0.15.2-1.el7.noarch (epel) Requires: python-greenlet
Error: Package: python-keystone-2014.2.2-1.el7.noarch (openstack-juno) Requires: python-webob >= 1.2.3 Error: Package: python-keystonemiddleware-1.2.0-1.el7.centos.noarch (openstack-juno) Requires: python-webob
Error: Package: 1:python-keystoneclient-0.11.1-1.el7.centos.noarch (openstack-juno) Requires: python-webob You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
But webob is installed with the correct version:
pip show webob
Name: WebOb Version: 1.4.1 Location: /usr/lib/python2.7/site-packages/WebOb-1.4.1-py2.7.egg Requires:
The extra packages are already installed:
rpm -i epel-release-7-5.noarch.rpm package epel-release-7-5.noarch is already installed
It looks like the relevant extra packages are installed.
How to do install python-keystoneclient? There appear to be dependency resolution issues. But they don't see real because the extra packages are installed.
A similar RedHat "bug" (not a real bug) was opened: tinyurl [DOT] com/osp9o93 (you have to construct the HTTP link above because I cannot post links; but someone may be able to help me without proving the research)
It directs the user to go here: tinyurl [DOT] com/65s3xm6 (you have to construct the HTTP link above because I cannot post links; but someone may be able to help me without proving the research)
The version of webob I have installed (as displayed by the pip command results) is new enough. Is RHEL v.7 not an acceptable version to install keystone?
I just want to install keystone on RedHat Linux. I don't know why this is problematic.
Is python-webob different from webob? Is there a 32 bit version of web 1.4.1?
The RPM package manager only knows about things that you installed with the RPM tool.
The
python-webobRPM is probably the equivalent of the PyPI packagewebobwrapped up in an RPM… but the RPM tool doesn't know that. As far as it knows, you have to have thepython-webobRPM or these other packages won't work.So, the easy answer here is to
pip uninstall weboband thenyum install python-webob.Or, of course, you can
pip installall of these Python libraries, then manually install the program that requires them (assuming it isn't a PyPI package).More generally, try to do one or the other consistently for everything. Either only install RPMs, or never install RPMs. Once you start mixing and matching, you run into these problems.
There are harder answers,* but unless the easy answers aren't appropriate for some reason, I'd go with the easy way.
* You can build a custom RPM from each PyPI package and install it; I believe there are even tools to automate that (something like
pip2rpmorpypi2rpmto download a package from PyPI and either find itsspecfile or build one if it doesn't have one, thenrpmbuildit). Or you can convince RPM that you really do have an appropriate equivalent—as long as you're sure you do. Or you can just force it to ignore dependencies and install the package anyway.