为什么 yum 包在 RedHat 8 上的 python2 中不可用

why yum package isn't availble in python2 on RedHat 8

提问人:Judy 提问时间:7/25/2023 更新时间:8/1/2023 访问量:66

问:

当我在 RHEL 7 上的 python 2.7.5 中使用 YUM 包时,一切正常,

但现在我们正在切换到具有 python 2.7.18 的新 Redhat 8

我们看到,尽管我们在 RedHat 8 上安装了以下 rpm,但 yum 和 rpm 软件包仍未安装

yum-4.7.0-16.el8_8.noarch
python-rpm-macros-3-41.el8.noarch

只是为了看看 Redhat 7 和 RedHat 8 之间的区别

在 RedHat 7 上,我们有以下文件夹

/usr/lib/python2.7/site-packages/yum
/usr/lib64/python2.7/site-packages/rpm

python --version
Python 2.7.5

在 RedHat 8 上,我们没有文件夹 yum 和 rpm

ls /usr/lib/python2.7/site-packages/ | grep yum   ( no output ) 
ls /usr/lib64/python2.7/site-packages/ | grep rpm ( no output ) 

python --version
Python 2.7.18

关于 RedHat 7 ,我们还验证了安装了哪些 rpm 以创建文件夹 yum 和 rpm ,这里是我们看到的示例

rpm -qf /usr/lib/python2.7/site-packages/yum/yumRepo.py
yum-3.4.3-168.el7.noarch

rpm -q --whatprovides  /usr/lib64/python2.7/site-packages/rpm/__init__.py
rpm-python-4.11.3-48.el7_9.x86_64

所以我们不明白我们在 RedHat 8 上犯了什么错误

为什么没有安装 yum 和 rpm 等软件包?

例:

python2 -c "import yum"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named yum


python2 -c "import rpm"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named rpm
转 RPM 百胜 RHEL7 RHEL8

评论


答:

0赞 msuchy 8/1/2023 #1

这是因为在 RHEL 8 中,Python 3 是默认的 Python 实现。查看 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.0_release_notes/rhel-8_0_0_release#web-servers-databases-dynamic-languages

所有默认的系统工具和应用程序都使用 python3。有一个包含 Python 2 的软件包,以简化客户的过渡期。python2

此外,YUM 已被 DNF 取代。https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.0_release_notes/rhel-8_0_0_release#software-management

因此,您需要从 迁移到 。RPM 绑定在包中python-yumpython3-dnfpython3-rpm

但现在我们正在切换到新的 Redhat 8

您知道 RHEL 8 并不新鲜吗?是的,它比 RHEL7 更新。但是,当您迁移到 RHEL 9 时,您可以节省大量时间。RHEL 9 已经有一年的历史了。