RedHat8下安装Ansible时冲突请求问题的解决方法
问题分析与解决办法
嘿,这个问题我之前帮好几个朋友解决过,核心原因很明确:你安装的ansible-2.8.2-1.el7.noarch是为RHEL7(EL7)系统编译的包,它依赖的是Python2系列的组件(比如python-setuptools、python-jinja2这些),但RHEL8默认已经全面切换到Python3作为系统默认Python版本,系统里根本没有这些Python2的依赖包,自然就会抛出冲突报错。
下面是具体的解决步骤,跟着做就能搞定:
第一步:清理旧的不适配包(如果已安装)
如果之前已经尝试安装了EL7版的Ansible残留包,先彻底清理:
sudo yum remove ansible* epel-release-el7*
第二步:安装适配RHEL8的EPEL仓库
确保你装的是RHEL8专属的EPEL仓库,而不是EL7的:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
(RHEL8里yum是dnf的软链接,用哪个都可以,推荐用dnf更贴合RHEL8的生态)
第三步:启用RHEL8的AppStream仓库(关键)
RHEL8的AppStream仓库包含了Python3的基础依赖组件,必须启用它才能满足Ansible的依赖需求:
sudo subscription-manager repos --enable rhel-8-for-x86_64-appstream-rpms
(如果你用的是CentOS8而非订阅版RHEL8,替换成sudo dnf config-manager --enable appstream)
第四步:安装适配RHEL8的Ansible
现在直接安装Ansible,系统会自动拉取EL8版本的包,依赖的都是Python3组件:
sudo dnf install ansible
如果需要指定特定版本(比如Ansible 2.9,也是适配EL8的稳定版),可以这样写:
sudo dnf install ansible-2.9.*
第五步:验证安装成功
执行下面的命令,确认Ansible正常运行且使用Python3:
ansible --version
正常输出里会显示python version = 3.x.x,这就说明没问题了。
内容的提问来源于stack exchange,提问作者James Ukilin
相关产品推荐
相关产品推荐

