提问人:Judy 提问时间:7/25/2023 更新时间:8/1/2023 访问量:66
为什么 yum 包在 RedHat 8 上的 python2 中不可用
why yum package isn't availble in python2 on RedHat 8
问:
当我在 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
答:
这是因为在 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-yum
python3-dnf
python3-rpm
但现在我们正在切换到新的 Redhat 8
您知道 RHEL 8 并不新鲜吗?是的,它比 RHEL7 更新。但是,当您迁移到 RHEL 9 时,您可以节省大量时间。RHEL 9 已经有一年的历史了。
评论