清除后 DNF 和 YUM 不工作 usr/lib/python3.5/site-packages/
DNF and YUM does not work after Purging usr/lib/python3.5/site-packages/
我正在摆弄 Fedora,试图卸载 python 模块。我找不到我要找的那个,所以半个 linux-灵长类动物的大脑想到了一个想法,来执行这个。
sudo rm -rf /usr/lib/python3.5/site-packages/
它做到了,只有在那之后我才意识到我是多么愚蠢。 DNF 和 YUM 依赖于它,每当我执行 DNF 我得到
Traceback (most recent call last):
File "/usr/bin/dnf", line 57, in <module>
from dnf.cli import main
ImportError: No module named 'dnf'
当我执行 YUM
Redirecting to '/usr/bin/dnf ' (see 'man yum2dnf')
Traceback (most recent call last):
File "/usr/bin/dnf", line 57, in <module>
from dnf.cli import main
ImportError: No module named 'dnf'
唯一有效的是 yum-deprecated
。其他一切都在动荡中。
那么我该如何解决这个问题?
您基本上删除了很多 python 个文件。系统很大一部分依赖于python,包括dnf
本身,写在python.
最好的办法是备份所有文件并重新安装系统。如果 yum-deprecated
仍然有效,您可能会幸运地重新安装 dnf
:
yum-deprecated reinstall "dnf*"
但您很可能需要更多的包裹来完成相同的程序。
使用'rpm -Va' 来识别缺少文件的包。然后,您必须从 Fedora 镜像下载匹配的 RPM 文件,然后使用 rpm --reinstall
修复这些文件。
higher-level dnf 和 yum 软件包依赖于 Python,因此它们很可能只是被破坏了。幸运的是,lower-level rpm 命令没有,所以如果 python 个包都被删除了,这应该会让你恢复原样。
清除 Python3 的 Site-Packages 目录会删除 Fedora 正常运行所需的大量库。这意味着 dnf
和 yum
等工具不起作用。
这些是我采取的解决此问题的步骤。
第 1 步:安装 yum-deprecated
。只需在终端上输入 yum-deprecated,它会询问您是否要安装它。输入 y
它将被安装。
第 2 步:运行 这个 Bash 命令
rpm -qa | egrep "^python3" | sed ':a;N;$!ba;s/\n/ /g' | xargs sudo yum-deprecated reinstall -y
这会找到已安装的 python 3 个软件包的所有名称,并重新安装它们。
我自己的注意事项:永远不要 运行 命令像 sudo rm -rf /usr/lib/python3.5/site-packages/
一样。
我有个朋友遇到了同样的问题
他试图通过一些惊人的命令 rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
和 whereis python3 |xargs rm -frv
.
在 linux 服务器中卸载 python3.7
这导致 yum
和 dnf
损坏。
因为找不到yum-deprecated
,所以有以下尝试。
我把/usr/bin/yum
换成了本地的python3.8版本,结果导致ModuleNotFoundError: No module named 'dnf'
,并没有解决。
网上下载很多rpm包不是个好办法。而且我也不能使用 yum。但是我有另一个相同的 os linux 服务器,所以我尝试复制关于 python3.7.
的相关文件
$ rpm -ql python3-3.7.0-9.h4.eulerosv2r8.aarch64> py.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line ;done<py.log
$ rpm -ql python3-libs-3.7.0-9.h4.eulerosv2r8.aarch64 >pylib.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line ;done<pylib.log
scp -r /usr/lib/python3.7/site-packages root@$remoteip:/usr/lib/python3.7/
我就这样恢复了yum
这会有所帮助。
yum update python*
yum install dnf-data dnf-plugins-core libdnf-devel libdnf python2-dnf-plugin-migrate dnf-automatic
我正在摆弄 Fedora,试图卸载 python 模块。我找不到我要找的那个,所以半个 linux-灵长类动物的大脑想到了一个想法,来执行这个。
sudo rm -rf /usr/lib/python3.5/site-packages/
它做到了,只有在那之后我才意识到我是多么愚蠢。 DNF 和 YUM 依赖于它,每当我执行 DNF 我得到
Traceback (most recent call last):
File "/usr/bin/dnf", line 57, in <module>
from dnf.cli import main
ImportError: No module named 'dnf'
当我执行 YUM
Redirecting to '/usr/bin/dnf ' (see 'man yum2dnf')
Traceback (most recent call last):
File "/usr/bin/dnf", line 57, in <module>
from dnf.cli import main
ImportError: No module named 'dnf'
唯一有效的是 yum-deprecated
。其他一切都在动荡中。
那么我该如何解决这个问题?
您基本上删除了很多 python 个文件。系统很大一部分依赖于python,包括dnf
本身,写在python.
最好的办法是备份所有文件并重新安装系统。如果 yum-deprecated
仍然有效,您可能会幸运地重新安装 dnf
:
yum-deprecated reinstall "dnf*"
但您很可能需要更多的包裹来完成相同的程序。
使用'rpm -Va' 来识别缺少文件的包。然后,您必须从 Fedora 镜像下载匹配的 RPM 文件,然后使用 rpm --reinstall
修复这些文件。
higher-level dnf 和 yum 软件包依赖于 Python,因此它们很可能只是被破坏了。幸运的是,lower-level rpm 命令没有,所以如果 python 个包都被删除了,这应该会让你恢复原样。
清除 Python3 的 Site-Packages 目录会删除 Fedora 正常运行所需的大量库。这意味着 dnf
和 yum
等工具不起作用。
这些是我采取的解决此问题的步骤。
第 1 步:安装 yum-deprecated
。只需在终端上输入 yum-deprecated,它会询问您是否要安装它。输入 y
它将被安装。
第 2 步:运行 这个 Bash 命令
rpm -qa | egrep "^python3" | sed ':a;N;$!ba;s/\n/ /g' | xargs sudo yum-deprecated reinstall -y
这会找到已安装的 python 3 个软件包的所有名称,并重新安装它们。
我自己的注意事项:永远不要 运行 命令像 sudo rm -rf /usr/lib/python3.5/site-packages/
一样。
我有个朋友遇到了同样的问题
他试图通过一些惊人的命令 rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
和 whereis python3 |xargs rm -frv
.
在 linux 服务器中卸载 python3.7
这导致 yum
和 dnf
损坏。
因为找不到yum-deprecated
,所以有以下尝试。
我把/usr/bin/yum
换成了本地的python3.8版本,结果导致ModuleNotFoundError: No module named 'dnf'
,并没有解决。
网上下载很多rpm包不是个好办法。而且我也不能使用 yum。但是我有另一个相同的 os linux 服务器,所以我尝试复制关于 python3.7.
的相关文件$ rpm -ql python3-3.7.0-9.h4.eulerosv2r8.aarch64> py.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line ;done<py.log
$ rpm -ql python3-libs-3.7.0-9.h4.eulerosv2r8.aarch64 >pylib.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line ;done<pylib.log
scp -r /usr/lib/python3.7/site-packages root@$remoteip:/usr/lib/python3.7/
我就这样恢复了yum
这会有所帮助。
yum update python*
yum install dnf-data dnf-plugins-core libdnf-devel libdnf python2-dnf-plugin-migrate dnf-automatic