new module add in with lots of issues(part 1)
2015-03-27 10:05
393 查看
centos unable to execute gcc: No such file or directory http://www.codesky.net/article/201112/165268.html
安装gcc即可
pkg_resources 文档
http://galaxy-dist.readthedocs.org/en/latest/lib/pkg_resources.html
一般python采用import导入需要使用的包,但是要多插件动态扩展就需要stevedore了,python setup.py install时会从setup.cfg中解析出entry_points并记录在系统中
需要使用时,使用stevedore的dispatch引入即可(服务启动时会读取系统中entry_points并做好映射),非常方便,本质上使用的是pkg_resources包
pkg_resources.load_entry_point('ironic','ironic.drivers','pxe_ipmitool')
pkg_resources.get_entry_map('ironic','ironic.drivers')
记录几个命令,总是忘记格式
find / -name "name"
yes | rm -r dir
rm -rf dir
rpm -qa | grep ironic 列出安装包
rpm -e xxx 卸载安装包
find ./ -name "*.php" | xargs grep '关键字'
find ./ -name "*.php" | xargs grep -F '关键字'(如果需要查找的内容包含特殊符号,比如$等等,grep要加参数)
自己编译安装ironic版本,发现与现在机器上的版本不匹配,之后/usr/lib/python2.7/site-packages/下有
ironic-2015.1.dev200.gadb8d74-py2.7.egg-info/和
ironic-2014.2-py2.7.egg-info/ 两个egg info文件夹,后一个是采用yum安装的结果,查看其中的entry_points.txt文件,是和
运行pkg_resources.get_entry_map('ironic','ironic.drivers')结果一致的,这说明使用git clone下来ironic的源码包之后,修改并采用python setup.py install安装
并没有改变系统的entry_points集合
同时采用源码包安装时,系统并没有形成openstack-ironic-api.service或者openstack-ironic-conductor.service服务,即没有/usr/bin/ironic-api和/usr/bin/ironic-conductor,我们可以手动添加或者使用yum安装后自动添加
/usr/bin/ironic 文件中是启动的ironicclient服务,/usr/bin/ironic-api和/usr/bin/ironic-conductor则分别启动对应的api和conductor服务
采用yum install openstack-ironic-*时,还会安装ironic-discoverd service
至于为什么采用python setup.py install安装源码包的时候没有更新entry_points,难道一定要打成egg包才可以?
我决定试试:
删除ironic-2014.2-py2.7.egg-info后,运行:
pkg_resources.load_entry_point('ironic==2015.1.dev200.gadb8d74','ironic.drivers','pxe_my')
报错说:
pkg_resources.VersionConflict: (ironic 2014.2 (/usr/lib/python2.7/site-packages), Requirement.parse('ironic==2015.1.dev200.gadb8d74'))
升级setuptools( pip install --upgrade setuptools)仍然不行
rpm -qa | grep ironic 查看发现ironic的包有:
python-ironicclient-0.3.1-1.el7.centos.noarch
openstack-ironic-api-2014.2-2.el7.centos.noarch
openstack-ironic-discoverd-0.2.5-1.el7.centos.noarch
openstack-ironic-common-2014.2-2.el7.centos.noarch
openstack-ironic-conductor-2014.2-2.el7.centos.noarch
尝试卸载2014.2的包:
rpm -e openstack-ironic-api-2014.2-2.el7.centos.noarch#还有common和conductor
之后删除系统中所有和ironic相关的文件和文件夹,用find命令查出来后删除,之后再重新安装源码包,问题(Version Conflict)仍然存在
但是发现此时使用 pkg_resources.get_entry_map('ironic','ironic_drivers')时有自己的driver出现,但load_entry_point时却失败,各种Version不匹配或者version conflict,
同时有些包被其他的openstack模块required,例如:
[root@xxxx)]# rpm -e python-netifaces-0.5-4.el7.x86_64
error: Failed dependencies:
python-netifaces is needed by (installed) openstack-swift-2.2.0-1.el7.centos.noarch
此版本的ironic直接安装后和可能之前的openstack环境不兼容,决定放弃编译源码安装,在老版本中的egg文件夹中的entry_points.txt中添加项
然而删除现有安装,使用yum 安装ironic包后,再次出现netifaces
pkg_resources.ContextualVersionConflict: (0.5 (/usr/lib64/python2.7/site-packages), Requirement.parse('netifaces>=0.10.4'), set(['oslo.utils']))
和上面的相同,最后落到同一个地方了!
使用pip卸载netifaces,之后重新安装0.10.4依然不行
决定重装RDO!netifaces看起来像是网络的问题,ironic 的工作流(修改及调试) 三 中解决了之后,再次运行,竟然没问题了,神奇!
安装gcc即可
pkg_resources 文档
http://galaxy-dist.readthedocs.org/en/latest/lib/pkg_resources.html
一般python采用import导入需要使用的包,但是要多插件动态扩展就需要stevedore了,python setup.py install时会从setup.cfg中解析出entry_points并记录在系统中
需要使用时,使用stevedore的dispatch引入即可(服务启动时会读取系统中entry_points并做好映射),非常方便,本质上使用的是pkg_resources包
pkg_resources.load_entry_point('ironic','ironic.drivers','pxe_ipmitool')
pkg_resources.get_entry_map('ironic','ironic.drivers')
记录几个命令,总是忘记格式
find / -name "name"
yes | rm -r dir
rm -rf dir
rpm -qa | grep ironic 列出安装包
rpm -e xxx 卸载安装包
find ./ -name "*.php" | xargs grep '关键字'
find ./ -name "*.php" | xargs grep -F '关键字'(如果需要查找的内容包含特殊符号,比如$等等,grep要加参数)
自己编译安装ironic版本,发现与现在机器上的版本不匹配,之后/usr/lib/python2.7/site-packages/下有
ironic-2015.1.dev200.gadb8d74-py2.7.egg-info/和
ironic-2014.2-py2.7.egg-info/ 两个egg info文件夹,后一个是采用yum安装的结果,查看其中的entry_points.txt文件,是和
运行pkg_resources.get_entry_map('ironic','ironic.drivers')结果一致的,这说明使用git clone下来ironic的源码包之后,修改并采用python setup.py install安装
并没有改变系统的entry_points集合
同时采用源码包安装时,系统并没有形成openstack-ironic-api.service或者openstack-ironic-conductor.service服务,即没有/usr/bin/ironic-api和/usr/bin/ironic-conductor,我们可以手动添加或者使用yum安装后自动添加
/usr/bin/ironic 文件中是启动的ironicclient服务,/usr/bin/ironic-api和/usr/bin/ironic-conductor则分别启动对应的api和conductor服务
采用yum install openstack-ironic-*时,还会安装ironic-discoverd service
至于为什么采用python setup.py install安装源码包的时候没有更新entry_points,难道一定要打成egg包才可以?
我决定试试:
删除ironic-2014.2-py2.7.egg-info后,运行:
pkg_resources.load_entry_point('ironic==2015.1.dev200.gadb8d74','ironic.drivers','pxe_my')
报错说:
pkg_resources.VersionConflict: (ironic 2014.2 (/usr/lib/python2.7/site-packages), Requirement.parse('ironic==2015.1.dev200.gadb8d74'))
升级setuptools( pip install --upgrade setuptools)仍然不行
rpm -qa | grep ironic 查看发现ironic的包有:
python-ironicclient-0.3.1-1.el7.centos.noarch
openstack-ironic-api-2014.2-2.el7.centos.noarch
openstack-ironic-discoverd-0.2.5-1.el7.centos.noarch
openstack-ironic-common-2014.2-2.el7.centos.noarch
openstack-ironic-conductor-2014.2-2.el7.centos.noarch
尝试卸载2014.2的包:
rpm -e openstack-ironic-api-2014.2-2.el7.centos.noarch#还有common和conductor
之后删除系统中所有和ironic相关的文件和文件夹,用find命令查出来后删除,之后再重新安装源码包,问题(Version Conflict)仍然存在
但是发现此时使用 pkg_resources.get_entry_map('ironic','ironic_drivers')时有自己的driver出现,但load_entry_point时却失败,各种Version不匹配或者version conflict,
同时有些包被其他的openstack模块required,例如:
[root@xxxx)]# rpm -e python-netifaces-0.5-4.el7.x86_64
error: Failed dependencies:
python-netifaces is needed by (installed) openstack-swift-2.2.0-1.el7.centos.noarch
此版本的ironic直接安装后和可能之前的openstack环境不兼容,决定放弃编译源码安装,在老版本中的egg文件夹中的entry_points.txt中添加项
然而删除现有安装,使用yum 安装ironic包后,再次出现netifaces
pkg_resources.ContextualVersionConflict: (0.5 (/usr/lib64/python2.7/site-packages), Requirement.parse('netifaces>=0.10.4'), set(['oslo.utils']))
和上面的相同,最后落到同一个地方了!
使用pip卸载netifaces,之后重新安装0.10.4依然不行
决定重装RDO!netifaces看起来像是网络的问题,ironic 的工作流(修改及调试) 三 中解决了之后,再次运行,竟然没问题了,神奇!
相关文章推荐
- new module add in with lots of issues(part 2)
- Web Tier to Go With Java EE 5: Summary of New Features in Java Standard Tag Library (JSTL) 1.2
- Add Addtional Series with fitlers of Stacked Column Charts or Bar Charts in MS CRM 2011
- Web Tier to Go With Java EE 5: Summary of New Features in JavaServer Faces 1.2 Technology
- Web Tier to Go With Java EE 5: Summary of New Features in JSP 2.1 Technology
- How to use re-write module of Apache web server 2.2.3 on FC6 with new or refurbi
- Intanced Tessellation -- A new part of the GPU pipeline for surface techniques in DX10 and coming DX11
- first work day of 2007, first work day in new company
- Long Paths in .NET, Part 1 of 3 [Kim Hamilton][译]
- Autoresize of columns in MSHFlexGrid with multiple bands
- 【MSDN文摘】Building Windows Forms Controls and Components with Rich Design-Time Features, Part 2 of 2
- Known Issues with the SMTP Adapter in BizTalk Server 2006
- New influence in American Life -- The roles of man and woman changing
- The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain
- Teddy's Aspect Weaver Version 0.3 with Great Updating and Fixing, Especially the Implementing of Getting Runtime Method Context Info and Method Arguments in MSIL Level
- Add new URL for CGI in Apache
- The Oxford Dictionary of New Words: A Popular Guide to Words in the News
- An example of MFC ( help myself with beginning in this field )
- How to deal with the "ErrorWebPart" error displayed in the web part maintenance page
- An Overview Of The New Services, Controls, And Features In ASP.NET 2.0