问题及查找
在yum install openstack-keystone httpd mod_wsgi后报错,且/etc下没有keystone说明keystone并没有被正确安装,主要原因是python2-qpid-proton-0.26.0-2.el7.x86_64包安装失败,这个包其下面缺少了qpid-proton-c(x86-64) = 0.26.0-2.el7依赖(可以通过运行yum install openstack-keystone httpd mod_wsgi --skip-broken跳过安装失败来印证,见图一)。
[root@controller etc]# yum install openstack-keystone httpd mod_wsgi
已加载插件:fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
软件包 httpd-2.4.6-99.el7.centos.1.x86_64 已安装并且是最新版本
软件包 mod_wsgi-3.4-18.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 openstack-keystone.noarch.1.16.0.2-1.el7 将被 安装
--> 正在处理依赖关系 python2-keystone = 1:16.0.2-1.el7,它被软件包 1:openstack-keystone-16.0.2-1.el7.noarch 需要
...
...
--> 正在处理依赖关系 qpid-proton-c(x86-64) = 0.26.0-2.el7,它被软件包 python2-qpid-proton-0.26.0-2.el7.x86_64 需要
--> 正在检查事务
...
--> 解决依赖关系完成
错误:软件包:python2-qpid-proton-0.26.0-2.el7.x86_64 (pike)
需要:qpid-proton-c(x86-64) = 0.26.0-2.el7
可用: qpid-proton-c-0.14.0-2.el7.x86_64 (extras)
qpid-proton-c(x86-64) = 0.14.0-2.el7
可用: qpid-proton-c-0.26.0-2.el7.x86_64 (pike)
qpid-proton-c(x86-64) = 0.26.0-2.el7
正在安装: qpid-proton-c-0.37.0-1.el7.x86_64 (epel)
qpid-proton-c(x86-64) = 0.37.0-1.el7
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest
![](https://img-blog.csdnimg.cn/direct/24917076d73a404ebe2f2c91b140775a.png)
解决方法
那么知道少了python2-qpid-proton-0.26.0-2.el7.x86_64这个包,安装它就行了:
[root@controller etc]# yum install python2-qpid-proton-0.26.0-2.el7.x86_64
运行内容:
可以看到安装了 python2-qpid-proton,同时为依赖而安装了qpid-proton-c,这样我们缺少的包和依赖就被安装好了,再运行yum install openstack-keystone httpd mod_wsgi安装keystone,安装成功,再看/etc下,已经有keystone目录了。不仅仅是缺少这个包,出现缺少其他包而报错的问题也可以用这个方法解决。