在 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-releases
和 epel
存储库之间的包冲突。尝试禁用@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 时,我得到了 python36
和 python36-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 失败的主要内容,如果未能解决你的问题,请参考以下文章
part1:Python 语言特点和安装,Ubuntu 19.04 Server系统安装,Windows 7 + RHEL7双系统安装