Centos Python2.7 YUM使用Python2.7解决依赖关系

4
我试图使用Centos盒子作为Vagrant虚拟机(因为我认为它是最接近AWS Amazon Linux机器的东西)。
问题:
Amazon Linux将python2.6作为系统python,但Amazon仓库中也有一个可用的python2.7软件包。
Centos没有可用的python2.7软件包。
在yum安装特定软件包时,我无法解决python2.7依赖关系。
尝试过的方法:
1.使用SCL python27 - 据我所知,它只能在SCL bash会话中工作,并且在使用yum安装软件包时无法解决依赖关系。
2.下载python2.7并构建RPM软件包(使用FPM)以通过yum和rpm进行本地安装- 这成功安装了python2.7,但它无法解决依赖关系失败。
3.我还在我的主机上(运行Fedora)拥有一个存储所有自定义rpm软件包的仓库。我将在Centos VM上创建的rpm复制到仓库中,虽然它确实安装了,但它也无法解决依赖关系错误。
现在我已经没有任何想法,所以任何帮助都将不胜感激。
示例依赖项错误:
这是我在尝试安装软件包时收到的YUM错误。我在使用scl python27 shell时也会遇到这个问题。
Error: Package: python27-djangorestframework-2.3.7-1.noarch (WFRepo)
    Requires: python(abi) = 2.7
    Installed: python-2.6.6-64.el6.x86_64 (@anaconda-CentOS-201508042137.x86_64/6.7)
        python(abi) = 2.6

当您尝试使用SCL存储库时,您看到了哪些依赖错误? - RaviTezu
@RaviTezu 我得到了以下错误:错误:软件包:python27-djangorestframework-2.3.7-1.noarch(WFRepo) 要求:python(abi) = 2.7 已安装:python-2.6.6-64.el6.x86_64 (@anaconda-CentOS-201508042137.x86_64/6.7) python(abi) = 2.6每当我说它无法解决依赖关系问题时,我总是会得到这个错误。 - WhiteFire
2个回答

2
我最终找到了解决方案。
前30个谷歌搜索结果告诉我要安装alt版本的python2.7,但是进一步搜索后,我发现 这里 提供的不仅是启用方便的epel仓库的说明,还包括了如何安装IUS仓库的说明。
我觉得IUS仓库并不是很方便(之前从未听说过,而且在此之前的任何阅读材料中都没有提到),但是我已经想不出其他办法了,所以我研究了一下并安装了它,看看有什么可用的东西。结果,它有python27!
以下是我安装IUS仓库和python27的步骤:
确保你已经安装/启用了epel仓库。
# wget https://centos6.iuscommunity.org/ius-release.rpm
# rpm -Uvh ius-release*.rpm
# yum install python27

请确保从 @ius 软件仓库中安装,而不是基础或更新软件仓库。如果不从 ius 安装,则需要使用 --disablerepo='*' --enablerepo='ius' 选项进行 yum 安装。
安装完成后,我在系统 python2.6 旁边拥有了 python2.7,并且解决了所有依赖问题。
希望这能帮助其他人。

1

'WhiteFile'提供的回答帮助我解决了我的Python 2.6(abi)问题。我试图安装Cassandra 3.11,它依赖于Python 2.7.x,并使用make / make altinstall构建它,并使用别名和路径更改了~/bash_profile,但没有帮助。我仍然得到以下错误

   [root@test~]# yum install cassandra
   Loaded plugins: fastestmirror
   Setting up Install Process
   Loading mirror speeds from cached hostfile
   * base: centos.myfahim.com
   * extras: centos.myfahim.com
   * updates: centos.myfahim.com
   Resolving Dependencies
   --> Running transaction check
   ---> Package cassandra.noarch 0:3.11.4-1 will be installed
   --> Processing Dependency: python(abi) >= 2.7 for package: cassandra-3.11.4-1.noarch
   --> Finished Dependency Resolution
   Error: Package: cassandra-3.11.4-1.noarch (cassandra)
          Requires: python(abi) >= 2.7
          Installed: python-2.6.6-66.el6_8.x86_64 (@anaconda-CentOS-201703281317.x86_64/6.9)
          python(abi) = 2.6
   You could try using --skip-broken to work around the problem
   You could try running: rpm -Va --nofiles --nodigest

建议不起作用,yum 给出的方法无效。
我按照“WhiteFire”用户提供的方法进行操作,但是遇到了另一个错误,如下所示,并通过添加一个命令解决了该问题。
warning: ius-release.rpm: Header V4 DSA/SHA1 Signature, key ID 9cd4953f: NOKEY 
error: Failed dependencies:
    epel-release = 6 is needed by ius-release-1.0-15.ius.centos6.noarch

我使用yum安装了epel-release

wget https://centos6.iuscommunity.org/ius-release.rpm
yum install  epel-release
rpm -Uvh ius-release*.rpm
yum install python27

我还没有解决下面命令的输出,因为它仍然引用 python(abi) => 2.6

     rpm -q --provides python | grep abi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接