使用Python2.7进行Centos Python2.7 YUM依赖性解析

时间:2016-05-03 03:16:42

标签: linux python-2.7 centos

我正在尝试将Centos盒用于Vagrant VM(因为我认为它与AWS Amazon Linux机器最接近)。

问题

Amazon Linux将python2.6作为系统python,但也有一个与Amazon repo一起提供的python2.7软件包。

Centos没有可用的python2.7软件包。

当yum安装特定软件包时,我无法解析python2.7依赖项。

我尝试过的事情

  1. 使用SCL python27 - 据我所知,它只适用于SCL bash会话,并且在使用yum安装软件包时不解决依赖关系。

  2. 下载python2.7并构建一个RPM包(使用FPM),使用yum和rpm进行本地安装 - 这成功安装了python2.7,但它没有解决依赖性失败

  3. 我的主机上也有一个repo(运行Fedora)来保存我所有的自定义rpm包。我将我在Centos VM上创建的rpm复制到了repo,虽然它确实安装了,但它也没有解决依赖性失败。

  4. 我现在没有想法,所以任何帮助都会受到赞赏。

    示例依赖性错误

    这是我在尝试安装软件包时遇到的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
    

2 个答案:

答案 0 :(得分:2)

我最终找到了解决方案。

前三十几个Google搜索告诉我make和alt安装python2.7但是在进一步搜索之后,我发现THIS我认为只是如何启用方便的epel repo的说明,但它还包括说明关于如何安装IUS回购。

我不认为IUS回购非常方便(之前从未听说过,在我读到的任何内容中都没有提及)但是我的想法已经用完所以我调查并安装了它只是为了看看有什么。事实证明,它有python27!

以下是我安装IUS repo和python27所做的工作:

确保已安装/启用epel repo。

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

确保从@ius repo安装,而不是基础或更新。如果不是从ius安装,则需要使用—disablerepo='*' —enablerepo='ius'选项进行yum安装。

安装完成后,我在系统python2.6旁边安装了python2.7,并解决了所有依赖问题。

希望这有助于其他人。

答案 1 :(得分:0)

“ 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