Centos Stream9下重新安装yum和DNF以及python3

2024-08-07 16:27:55 浏览数 (1)

Centos Stream9下重新安装yum和DNF以及python3

我是如何干掉yum和dnf又给装回来的

以下是参考的技术文档:没用任何引流的方式,请审核审核一下参考来源。以下是原创文章并非,绝无仅有的一篇删了yum和dnf以及python的文章。如果这也被驳回,那我没办法想了。

所属环境:Centos stream 9 docker 版本,卸载掉的工具主要是rpm和rm这两个最基本的工具

所需镜像来源腾讯云:https://mirrors.tencent.com/centos-stream/9-stream/

所需知识库有点多,需客观对待,比如dnf是如何工作的,yum是如何工作的等

参考源码和dnf开源社区:https://dnf.readthedocs.io/en/latest/use_cases.html

GitHub仓库dnf的官方仓库:https://github.com/rpm-software-management/dnf

理解dnf的工作原理以及他是在哪个地方的源码编译的,以及利用python3如何定义源的问题

参考dnf开源社区的一些参考https://docs.fedoraproject.org/en-US/quick-docs/dnf/

1、首先dnf并不是rehat的一个分支

1.理解一些常识错误,(yum 这个命令并不是通过编译来实现,他本身是一个python的一种表达,通过dnf这个来实现rpm的更新和清理cache,具体可以看下yum.conf 。你可以通过命令which yum和whereis yum得到一些你想要的文档和配置,这有点困难呢~)

2.dnf命令这里直接省略,因为dnf只需常用的一些命令就能实现更新。比如microdnf 也是dnf的一个分支。

3.yum命令其实是调用dnf命令的,可以参考bin下的软链接,比如查看bin下的yum

代码语言:txt复制
ls -il /bin yum

2、卸载yum和dnf以及python

查看python安装包

代码语言:txt复制
rpm -qa |grep python

查看yum安装包

代码语言:txt复制
rpm -qa |grep yum

查看dnf安装包

代码语言:txt复制
rpm -qa |grep dnf

骚操作来了


强制卸载python及其相关包

代码语言:txt复制
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps

删除残留文件

代码语言:txt复制
whereis python|xargs rm -frv

强制卸载yum及其相关包

代码语言:txt复制
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps

删除残留文件

代码语言:txt复制
rm -rf /etc/yum.repos.d/* 
whereis yum|xargs rm -frv

好了到这部,基本上你的操作就没了,yum和python也不会打理你了。

dnf现在还报错,原因python3被你删了(小知识,cento stream 9 没有python2)

强制卸载dnf及其相关包

代码语言:javascript复制
rpm -qa|grep dnf|xargs rpm -ev --allmatches --nodeps

删除残留文件

代码语言:javascript复制
whereis dnf|xargs rm -frv

好了整个流程就是这样 ,想装回来咋办????这里很多个问号,无从下手了,凉拌了。整个互联网没有这个文章,有也是2019年关于centos7或者centos8的,没有咋办,向大佬们取经???基本上没用,除了给你看看就没其他方案了。这就是现实。

首先想到的是试试能不能通过编译make 和make install的,答案是否定的。操作了pyenv我想当然的以为装个这个应该就能是python环境了吧,结果答案是否定的,为什么?我想这里可能涉及到Linux核心编程这一书,书中非常详细的讲了这个过程。

关于python的源,国内就华为云有

结果很明显,我安装后dnf和yum后,会报错,比如libimaevm.so.4没找到这个库,咋办?这里不得不说这个网站了

https://rpmfind.net/linux/rpm2html/search.php?query=libimaevm.so.4

向这个网站致敬,没有他,你无法找到依赖无法找到libxxx错误,以及一些常用的库都有提供,貌似只有2020年以后的可以使用。查遍所以AI和chatgpt,没有一个回复正确,咋办,手动呗。就是有这个决心。

代码语言:txt复制
rpm -Uvh xxx.rpm 

在镜像

https://mirrors.tencent.com/centos-stream/9-stream/BaseOS/x86_64/os/Packages/

包中找到python的包安装一遍,这里的依赖等会一并发出来。

比如python的依赖 dnf的依赖等等。

过程中会遇到(X86_64)这样的直接忽略

代码语言:txt复制
rpm -Uvh xxx.rpm --nodeps

这样就大公告成了。但是,你以为这样就可以了??????

哈哈哈,你装了环境,装了包,你的dnf还是失败,提示dnf包没用安装libdnf包。哈哈哈哈

代码语言:txt复制
systemctlenable--nowdnf-automatic-notifyonly.timer

启动dnf automatic

原理请看这篇:https://dnf.readthedocs.io/en/latest/automatic.html

这回你觉得大公告成了????没那么容易,你的python环境是在系统里,但是环境还没放你配置文件呢

所以记得编辑一下.bashrc

然后记得设置一些生效

代码语言:txt复制
echo  $PATH=你的python所在文件夹;你的yum所在文件夹;你的dnf所在文件夹

然后启用 比如你是root用户登录,就在root目录下运行上面和下面的环境配置参考:

代码语言:txt复制
source ./.bashrc 

真辛苦,终于搞定。

忘了关键的依赖没写,等会写,让我先高兴一下,喝口水。

-rw-r--r-- 1 root root 491908 Aug 7 13:38 dnf-4.14.0-9.el9.noarch.rpm

-rw-r----- 1 root lighthouse 40448 Nov 13 2023 dnf-data-4.14.0-9.el9.noarch.rpm

-rw-r--r-- 1 root root 70992 Aug 7 14:55 ima-evm-utils-1.5-2.el9.x86_64.rpm

-rw-r--r-- 1 root root 676270 Aug 7 14:52 libdnf-0.69.0-9.el9.x86_64.rpm

-rw-r--r-- 1 root root 1047248 Aug 7 13:19 lvm2-libs-2.03.24-1.el9.x86_64.rpm

-rw-r--r-- 1 root root 27114 Aug 7 13:16 python3-3.9.19-4.el9.x86_64.rpm

-rw-r--r-- 1 root root 473473 Aug 7 13:38 python3-dnf-4.14.0-9.el9.noarch.rpm

-rw-r--r-- 1 root root 287423 Aug 7 14:12 python3-gpg-1.15.1-6.el9.x86_64.rpm

-rw-r--r-- 1 root root 104829 Aug 7 14:12 python3-hawkey-0.69.0-12.el9.x86_64.rpm

-rw-r--r-- 1 root root 50106 Aug 7 14:13 python3-libcomps-0.1.18-1.el9.x86_64.rpm

-rw-r--r-- 1 root root 799548 Aug 7 14:13 python3-libdnf-0.69.0-9.el9.x86_64.rpm

-rw-r--r-- 1 root root 8481921 Aug 7 14:18 python3-libs-3.9.19-4.el9.x86_64.rpm

-rw-r--r-- 1 root root 231066 Aug 7 13:16 python3-libxml2-2.9.13-6.el9.x86_64.rpm

-rw-r--r-- 1 root root 1181980 Aug 7 14:43 python3-pip-wheel-21.2.3-8.el9.noarch.rpm

-rw-r--r-- 1 root root 66904 Aug 7 13:17 python3-rpm-4.16.1.3-32.el9.x86_64.rpm

-rw-r--r-- 1 root root 482652 Aug 7 14:44 python3-setuptools-wheel-53.0.0-9.el9.noarch.rpm

-rw-r--r-- 1 root root 92343 Aug 7 13:17 yum-4.14.0-9.el9.noarch.rpm

这是一篇技术文章,文章参考的技术有点多,为了方便阅读,部分友商云的已经去除。

0 人点赞