在 rhel7 上安装 python36-devel 失败

Posted

技术标签:

【中文标题】在 rhel7 上安装 python36-devel 失败【英文标题】:Installing python36-devel on rhel7 failing 【发布时间】: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。唉,我无法在我正在检查的机器上安装。 【参考方案1】:

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

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

    找出为什么yum只能找到旧版本的python36-devel,从逻辑上讲,您应该能够在安装python36-libs的同一存储库中找到python36-devel-3.6.8-10 from (@rhui-REGION-rhel-server -发布)。 将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

【讨论】:

以上是关于在 rhel7 上安装 python36-devel 失败的主要内容,如果未能解决你的问题,请参考以下文章

RHEL7.3安装python3.6.1

RHEL7环境下安装python3.3

在 RHEL7 上安装最新版本的 Erlang

在VMware12.0上安装rhel7.2

part1:Python 语言特点和安装,Ubuntu 19.04 Server系统安装,Windows 7 + RHEL7双系统安装

rhel7.5上安装iostat