“error: Failed dependencies: /usr/local/bin/python is needed by”的解决方案

昨天在RHEL6.2上安装自己build的xen的rpm包时,提示由于python依赖不能安装成功,遇到如下的错误提示信息:
error: Failed dependencies:
/usr/local/bin/python is needed by xen-unstable-2011-11-24.rpm
由于我的python是在/usr/bin/python,所以看到这个提示,我就做了个软连接/usr/local/bin/python,没想到居然不起作用。我知道在rhel5u5中,使用python 2.4版本,是会默认安装到/usr/local/bin/python的;至于为什么我有软连接,它还是提示这个dependency问题,我也还没搞清楚,但是如果是确实安装python2.4在/usr/local/bin/python是肯定可以找得到需要的python的。(这个今后再研究一下原因吧)
下面主要讲一下为什么会出现/usr/local/bin/python的dependency以及如何去暂时规避这个问题。
遇到“/usr/local/bin/python is needed by XX.rpm”的错误,是由于XX中依赖了这个所以要检查,有两种情况会这样:
1. 在XX.rpm中有的文件写了"#!/usr/local/bin/python"这样的开头(可以通过grep去查一下),而rpmbuild打包时默认是自动依赖的,所以会把这个python的依赖放进去,而且会在安装这个包时检查。可以在build这个XX.rpm包时,在其SEPC文件中写上"Autoreq: 0"这一行来取消自动添加依赖关系,然后重新build这个rpm包即可。
2. 有可能在XX.rpm包build时的SPEC显式地指出了对python的依赖。比如在SPEC中有类似这样的语句:Requires: python >= 1.3
当然依赖检查本意是好的,是为了让你安装包之后确保真正执行程序时会能找到需要的依赖,但是像我遇到的python的软连接它不认识的情况,就可以去掉自动检查检查来work around了,因为安装后执行程序时,/usr/local/bin/python这个链接是管用的。 (当然可以用--nodeps 参数来安装rpm)

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*