【问题标题】:Installing python36-devel on rhel7 failing在 rhel7 上安装 python36-devel 失败
【发布时间】:2019-12-21 06:00:58
【问题描述】:

尝试在 RHEL7 上安装 python36-devel,结果报错

尝试解决错误中所述的依赖关系,但没有帮助。

也试过这个How to install python3-devel on red hat 7,结果也是同样的错误

yum install python36-devel

错误:

Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package python36-devel.x86_64 0:3.6.8-1.el7 will be installed
--> Processing Dependency: python36 = 3.6.8-1.el7 for package: python36-devel-3.6.8-1.el7.x86_64
Package python36-3.6.8-1.el7.x86_64 is obsoleted by python3-3.6.8-10.el7.x86_64 which is already installed
--> Processing Dependency: python36-libs(x86-64) = 3.6.8-1.el7 for package: python36-devel-3.6.8-1.el7.x86_64
Package python36-libs-3.6.8-1.el7.x86_64 is obsoleted by python3-libs-3.6.8-10.el7.x86_64 which is already installed
--> Finished Dependency Resolution
Error: Package: python36-devel-3.6.8-1.el7.x86_64 (epel)
           Requires: python36-libs(x86-64) = 3.6.8-1.el7
           Installed: python3-libs-3.6.8-10.el7.x86_64 (@rhui-REGION-rhel-server-releases)
               python36-libs(x86-64) = 3.6.8-10.el7
           Available: python36-libs-3.6.8-1.el7.x86_64 (epel)
               python36-libs(x86-64) = 3.6.8-1.el7
Error: Package: python36-devel-3.6.8-1.el7.x86_64 (epel)
           Requires: python36 = 3.6.8-1.el7
           Installed: python3-3.6.8-10.el7.x86_64 (@rhui-REGION-rhel-server-releases)
               python36 = 3.6.8-10.el7
           Available: python36-3.6.8-1.el7.x86_64 (epel)
               python36 = 3.6.8-1.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

【问题讨论】:

  • 我也遇到了。
  • 快速浏览一下似乎是 @rhui-REGION-rhel-server-releasesepel 存储库之间的包冲突。尝试禁用@rhui-REGION-rhel-server-releases 看看是否可以解决问题。
  • @user3788685 当它说python3-3.6.8-10.el7.x86_64 which is already installed时,是否意味着我们已经在系统中拥有了开发工具?
  • 是的 - 执行rpm -q python3 并且它应该返回相同的内容 - 这意味着您已安装该版本。但这只是 python 的基本版本——不是开发头文件。
  • 当我从 epel repo 询问 yum 时,我得到了 python36python36-devel。唉,我无法在我正在检查的机器上安装。

标签: python-3.6 yum rhel7


【解决方案1】:

yum 不喜欢降级软件包,除非你明确告诉他这样做。

python36-devel 需要具有完全相同版本号的python36-libs。但是,您安装了带有 更高 版本号的 python36-libs。你有两个选择:

  1. 找出为什么yum只能找到旧版本的python36-devel,从逻辑上讲,您应该能够在安装python36-libs的同一存储库中找到python36-devel-3.6.8-10 from (@rhui-REGION-rhel-server -发布)。
  2. python36-libs 降级到与您尝试安装的python36-devel 相同的版本。

降级安装python36-devel

yum downgrade python36-libs-3.6.8-1.el7.x86_64
yum install python36-devel

甚至在一次操作中也可能起作用:

yum swap -- downgrade python36-libs-3.6.8-1.el7.x86_64 -- install python36-devel

【讨论】:

    【解决方案2】:

    截至 2019 年 8 月 23 日,我发现了以下解决方法来处理 ol7_developer_EPEL 存储库中的 python36-3.6.8-1 落后于 ol7_latest 中的 python36-3.6.8-10。

    yum install -y gcc openssl redhat-rpm-config
    && yum-config-manager --disable ol7_latest
    && yum install -y python36 python36-devel python36-setuptools
    && pip3 install -r requirements.txt
    && python3 setup.py install
    

    【讨论】:

      【解决方案3】:

      显然 repo @rhui-REGION-rhel-server-releases 有 python3-libs-3.6.8-10.el7.x86_64 但不是 python36-libs- 的低版本3.6.8-1.el7.x86_64.

      正如Chris Maes 所指出的,python36-devel 和 python36-libs 应该是完全相同的版本。

      epel repo 具有相同版本的两个库,但由于与 @rhui-REGION-rhel-server-releases 冲突,安装正在升级。

      因此,禁用 repo @rhui-REGION-rhel-server-releases 并为两个库使用 epel

      sudo yum-config-manager --disable rhui-REGION-rhel-server-releases
      sudo yum-config-manager --disable @rhui-REGION-rhel-server-releases
      sudo yum install python36-setuptools -y 
      sudo yum install python36-devel -y 
      # enable later
      sudo yum-config-manager --enable rhui-REGION-rhel-server-releases
      sudo yum-config-manager --enable @rhui-REGION-rhel-server-releases
      

      解决方案:user3788685

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-14
        • 2021-07-22
        • 2015-06-21
        • 1970-01-01
        • 2018-12-07
        • 2017-08-16
        • 1970-01-01
        • 2019-11-28
        相关资源
        最近更新 更多